.addBack() 和 .parent() 有什么区别?
似乎他们都只是遍历了一层并选择了元素。
这取决于你来自哪里。
parent()
将始终选择直接父元素,addBack()
的结果取决于前一个选择器的结果:
.addBack([选择器])
返回:jQuery 描述:将堆栈上的前一组元素添加到当前组,可选地由选择器过滤。
查看以下 jsfiddle 示例:http: //jsfiddle.net/vGAq5/2/
第一个警报将选择第二个的所有后续兄弟,并添加第二个。第二个警报器将选择编号为 2 的所有后续兄弟,并获取其父级(而不是将其添加到结果集中)。
完全不同的方法:
addBack() - add the current selection to the previous one and merges those selections
parent() - selects the direct parent of the current selection
查看官方文档:
http://api.jquery.com/addBack/
基本示例:
考虑html:
<div id="parent">
<div id="child">
</div>
</div>
javascript:
console.log($('#child').parent()); // return the div#parent selection
console.log($('#child').addBack()); // return the div#child selection - it merges the div#child with the previous selection (which happens to be empty)
parent
获取作为当前选择的直接 DOM 父级的 DOM的结果,而addBack
在 jQuery 中进行链接时获取上一个选择。
使用以下示例:
<div class="the-one">
<div class="child-1">
<div class="grandchild-1"></div>
<div class="grandchild-2"></div>
</div>
<div class="child-2"></div>
<div class="child-3"></div>
</div>
如果你跑步$('.the-one').find('.grandchild-1').parent()
,你会得到child-1
.
如果你跑步$('.the-one').find('.grandchild-1').addBack()
,你会得到the-one
and grandchild-1
。
addBack
当您在链接中向下遍历 DOM 并且您想要一种简单的方法来返回先前的选择并进行另一次遍历时,通常会使用它。