首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JQuery:为什么parent().parent.parent()有效,而parents(选择器)无效?

JQuery是一个流行的JavaScript库,用于简化HTML文档遍历、事件处理、动画效果等操作。在JQuery中,parent()方法用于获取当前元素的直接父元素,而parents(选择器)方法用于获取当前元素的所有符合选择器条件的祖先元素。

对于给定的问答内容,我们可以解释为什么parent().parent().parent()有效,而parents(选择器)无效。

parent().parent().parent()有效的原因是,每个parent()方法调用都是获取当前元素的直接父元素,连续调用三次parent()方法可以获取到当前元素的父元素的父元素的父元素,即祖父元素。这种连续调用的方式可以在DOM树中向上遍历多层级,直到达到目标元素。

而parents(选择器)无效的原因是,parents(选择器)方法是获取当前元素的所有符合选择器条件的祖先元素。在这个问答内容中,并没有给出具体的选择器条件。如果没有指定选择器条件,parents()方法将返回当前元素的所有祖先元素。因此,如果没有指定选择器条件,parents(选择器)方法应该是有效的。

综上所述,parent().parent().parent()有效是因为连续调用parent()方法可以向上遍历多层级获取祖父元素,而parents(选择器)无效可能是因为没有给出具体的选择器条件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

jQueryparents()、parent()和closest()的区别

jQuery向上遍历DOM树的API中,有parents()、parent()和closest(),这三个方法比较容易混淆,这里介绍一下三者的区别。 1....同时,本方法还接受一个字符串选择器,用于从返回的节点集中筛选符合选择器的子元素集。 parent([selector]) 本方法用于选择给定jQuery对象中包含的DOM元素或者DOM元素集的父节点。...它和parents()不同的是,它只向上搜索一层,parents()会搜索整个DOM树。 本方法也可以接受一个字符串选择器,用于筛选返回的元素。...区别 closest()从自身开始向上遍历,直到找到一个适合的节点,返回的jQuery对象包含0个或者1个对象; parents()从自身的父节点开始向上遍历,返回所有祖先节点,并根据选择器对这些节点进行筛选...等元素构造的jQuery对象; $("b").parent()将返回:由span构造的jQuery对象; $("b").closest("div")将返回:由div构造的jQuery对象。

3.1K1090

JQuery中closest、parentparents、parentsUntil的区别

定义和用法 parent() 方法返回被选元素的直接父元素。 $(selector).parent(filter) 参数 描述 filter 可选。规定缩小搜索父元素范围的选择器表达式。...parents() 方法返回被选元素的所有祖先元素。 $(selector).parents(filter) 参数 描述 filter 可选。规定缩小搜索祖先元素范围的选择器表达式。...表示在哪里停止搜索匹配的祖先元素的选择器表达式、元素、jQuery 对象。 filter 可选。规定缩小搜索介于 selector 与 stop 之间的祖先元素范围的选择器表达式。...区别 parent():返回被选元素的直接父元素,返回包含零个或一个元素的 jQuery 对象 parents(selected):从父元素开始沿 DOM 树向上遍历,并返回匹配所传递的表达式的所有祖先...,遍历将会一直抵达到根元素(html)后才会停止; parents()无论是否传入选择器,遍历都会抵达根元素后才会停止。

62120

《众妙之门:JavaScript 与 jQuery 技术精粹》部分要点摘录

以下内容来自于《众妙之门:JavaScript 与 jQuery 技术精粹》一书,为本人在阅读的时候感觉有必要记录的地方记录而来。...outside loop using while */ var len = myArray.length; while (len--){} 命名空间模式 问题:程序中使用的命名空间是正确的,但对其存在性的检查无效...的几个易混淆概念 parent()、parents()、closest() parent() 用于匹配元素的直接父元素。...parents() 类似于parent(),返回的是多个父元素。 closest() 类似于parents(),但只返回一个父元素或祖先元素,且为最近的元素。...mouseover", function() { alert("hello"); }); not()、is()、:not()区别 not() 返回不匹配的元素、is()只会返回布尔值、:not()可用于选择器字符串中

73270

jQuery选择器 和用jQuery 实现 Tab 切换效果(1)

二、选择器的用法 1、.eq(index),.get([index]) 对于一个特定结果集,我们想获取到指定index的jQuery对象 $('div').eq(3); //获取结果集中的第四个jQuery...5、.parent([selector]) 取得匹配元素集合中,每个元素的直接父元素,可以提供一个可选的选择器 $('li.item-a').parent() 6、.parents([selector]...) 获得集合中每个匹配元素的祖先元素,可以提供一个可选的选择器作为参数 $('.child').parents('.container') ?...11、.is(selector), is(function(index)), is(dom/jqObj) 判断当前匹配的元素集合中的元素,是否为一个选择器,DOM元素,或者jQuery对象,如果这些元素至少一个匹配给定的参数...active') .siblings().removeClass('active') console.log($(this).index()) $(this).parents

3.7K20

jQuery对象的查找

jQuery中,我们可以使用各种方法来查找和选择特定的元素或元素集合。这些查找方法使我们能够根据不同的选择器、属性、关系等条件来定位和操作元素。...常用的jQuery对象查找方法:find()方法在当前元素集合中查找匹配指定选择器的后代元素,并返回新的元素集合。...children()方法选择当前元素集合中所有匹配指定选择器的子元素,并返回新的元素集合。...= $listItems.parent();console.log($parent.is("ul")); // 输出:truevar $containerParents = $listItems.parents...例如,使用parent()方法选择$listItems的父级元素,并通过is()方法判断是否为元素;使用parents()方法选择$listItems的.container祖先元素;使用siblings

69510

jQuery入门前言

对象,再进行操作,jQuery获取到的$p是jQuery对象。...用法如下表: 选择器 描述 $("parent > child") 子选择器,选择所有指定“parent”元素中指定的“child”直接子元素 $("ancestor descendant") 后代选择器...如果想连li也找到,那就得用find()方法: $("div").find("li") 2、parent()和parents()方法: parent方法,和children方法相反,就是查找上一级元素...parents方法和parent方法的不同之处在于parent只查找父级一级的元素,parents则会一直往上查找。...直到找到一个匹配的就停止查找,parents一直查找到根元素,并将匹配的元素加入集合 结果不同:.closest返回的是包含零个或一个元素的jquery对象,parents返回的是包含零个或一个或多个元素的

2.7K30

jquery树遍历

.closest() .parents() 开始于当前元素 开始于父元素 在 DOM 树中向上遍历,直到找到与提供的选择器相匹配的元素 向上遍历DOM树到文档的根元素,每个祖先元素加入到临时集合,如果提供一个选择器...,则会使用该选择器在集合中进行过滤 返回包含零个或一个元素的jQuery对象 返回包含零个,一个或多个元素的jQuery对象 .find() 得到当前匹配的元素集合中每个元素的后代, 由一个选择器jQuery....nextUntil() 通过选择器,DOM节点,或jQuery对象得到每个元素接下来的所有的兄弟元素,但不包括匹配的元素。...(译者注:祖先元素指该元素的上级元素,即包着它的外层元素) .parent() 获得集合中每个匹配元素的父级元素,选择性筛选的选择器。....parents() 获得集合中每个匹配元素的祖先元素,选择性筛选的选择器 .parentsUntil() 查找当前元素的所有的前辈元素,直到遇到选择器匹配的元素为止,不包括那个匹配到的元素。

84730

jQuery中的常用内容总结(一)

[dom中定义的class的值] [标签名称]");或 $("#[dom中定义的ID的值] [标签名称]"); 这四类选择器定义的都是以美元符号$开始后跟着左右括号,括号中的值视不同的选择器不同,这里不多缀诉...嗯~,这里总结下,jQuery对象一般包含: List:存放dom内容,context:选择范围(相当于作用域) length:当前选择器选择的数量(也就是List对象的大小) prevObject...如果是ID选择器,则jQuery对象中没有prevObject这个参数,因为ID本身就是唯一的,例如上面的代码,如果在html中定义了两个ID,jQuery选择器永远只会选择第一个匹配的,如果你只需要在...p")[4]); 已经学会使用选择器了,现在我讲解下jQuery选择器的常用的方法和属性: next():下一个节点                 样例:$('.2').next(); prev(...):上一个节点                 样例:$('.2').prev(); parent():父节点                样例:$('.2').parent(); parents

99330

jQuery中的常用内容总结(一)

后面再多的零也是徒然,同时,建议在开发的时候保持一个好的心态,积极面对需求和技术难点,不要像我一样在难的地方朝一个地方死钻、而且经常性考虑需求之外的需求,这样都是不太好,尽量以"需求"的心态去"开发",不是以...[dom中定义的class的值] [标签名称]");或 $("#[dom中定义的ID的值] [标签名称]"); 这四类选择器定义的都是以美元符号$开始后跟着左右括号,括号中的值视不同的选择器不同,这里不多缀诉...如果是ID选择器,则jQuery对象中没有prevObject这个参数,因为ID本身就是唯一的,例如上面的代码,如果在html中定义了两个ID,jQuery选择器永远只会选择第一个匹配的,如果你只需要在...p")[4]); 已经学会使用选择器了,现在我讲解下jQuery选择器的常用的方法和属性: next():下一个节点                 样例:$('.2').next(); prev(...):上一个节点                 样例:$('.2').prev(); parent():父节点                样例:$('.2').parent(); parents

1.1K90

前端基础:jQuery

jQuery 的设计思想是 Write less, do more 实现隔行变色效果,JavaScript 要循环加判断, jQuery 只需一句关键代码 $("tr:even").css("background-color...也都能做,但使用 jQuery 能大幅提高开发效率 jQuery Advantages 体积小,压缩后只有 100 KB 左右 强大的选择器 出色的 DOM 封装 可靠的事件处理机制 出色的浏览器兼容性...基本的语法介绍 $(selector).action(); 工厂函数 $():将 DOM 对象转化为 jQuery 对象 选择器 selector:获取需要操作的...b = jqObject.get(0); 选择器 基本选择器 基本选择器包括标签选择器、类选择器、ID选择器、并集选择器、交集选择器和全局选择器。....html(); // 找祖宗 ul var x = $("b").parents("ul").html(); // 找祖宗 body var

13.5K20

jQuery最佳实践

(4) $('#parent > .child') jQuery内部使用Sizzle引擎,处理各种选择器。...(6) $('.child', $('#parent')) jQuery内部会将这条语句转成$('#parent').find('.child'),比最快的形式慢了23%。...因此,这个事件只需要在父元素绑定1次即可,不需要在子元素上绑定100次,从而大大提高性能。这就叫事件的"委托处理",也就是子元素"委托"父元素处理这个事件。 具体的写法有两种。...此外,这两种方法相比传统的.bind()方法还有一个好处,那就是对动态插入的元素也有效,.bind()只对已经存在的DOM元素有效,对动态插入的元素无效。 根据测试,委托处理比不委托处理,快了几十倍。...因为elem.data()方法是定义在jQuery函数的prototype对象上面的,$.data()方法是定义jQuery函数上面的,调用的时候不从复杂的jQuery对象上调用,所以速度快得多。

1.3K20

jQuery常见结点操作

jQuery常见结点操作汇总 jQuery获取节点 基本操作 功能 操作 注意事项 获取hxb的子节点 hxb.children(expr) 可以传入expr进行过滤,比如hxb.children()或者...获取hxb的父节点 hxb.parent(expr) 可以传入expr进行过滤,比如hxb.parent()或者hxb.parent(“.class”)。...— 注意 获取某个子节点或者父节点使用选择器过滤即可! 获取hxb的所有祖先元素 hxb.parents(expr) 这是是查找所有祖先元素,不限于父元素。类似于js中的offsetParent。...注意:jQuery.find(expr) 跟 jQuery.filter(expr) 完全不一样。...jQuery.filter()是从初始的jQuery对象集合中筛选出一部分,jQuery.find()的返回结果,不会有初始集合中的内容,比如("p").find("span"),是从p元素开始找,等同于

13810

jquery要怎么写才能速度最快?(转…

(4)$('#parent > .child') jQuery内部使用Sizzle引擎,处理各种选择器。...所以,最佳选择是$parent.find('.child')。而且,由于$parent往往在前面的操作已经生成,jQuery会进行缓存,所以进一步加快了执行速度。...因此,这个事件只需要在父元素绑定1次即可,不需要在子元素上绑定100次,从而大大提高性能。这就叫事件的"委托处理",也就是子元素"委托"父元素处理这个事件。 具体的写法有两种。...此外,这两种方法相比传统的.bind()方法还有一个好处,那就是对动态插入的元素也有效,.bind()只对已经存在的DOM元素有效,对动态插入的元素无效。...因为elem.data()方法是定义在jQuery函数的prototype对象上面的, $.data()方法是定义jQuery函数上面的,调用的时候不从复杂的jQuery对象上调用,所以速度快得多。

1.6K30

python笔记72 - 使用pathlib替代os.path

相比于老式的 os.path 有几个优势: 老的路径操作函数管理比较混乱,有的是导入 os, 有的又是在 os.path 当中,新的用法统一可以用 pathlib 管理。...\untitled3 print(p.parents) # 所有的父级 print(p.anchor) # 锚,目录前面的部分 C:\ 或者 / 获取上层...'./') print(p.cwd().parent) 获取上上层使用链式方法调用 .parent.parent from pathlib import Path # .parent 获取上一层 print...(Path.cwd().parent.parent) # 实例化后调用 .parent p = Path('./') print(p.cwd().parent.parent) 获取用户home目录 from.../json目录 p.mkdir(parents=True) 删除文件操作 删除目录非常危险,并且没有提示,一定要谨慎操作 rmdir() 一次只删除一级目录,且当前目录必须为空。

74430
领券