.addBack()和.parent()有什么区别?
看起来他们都只是遍历一个级别并选择元素。
答案 0 :(得分:3)
这取决于你来自哪里。
parent()
将始终选择直接父元素,addBack()
的结果取决于前一个选择器的结果:
.addBack([selector])
返回:jQuery 描述:将堆栈上的前一组元素添加到当前集合,可选择由选择器过滤。
查看以下jsfiddle示例: http://jsfiddle.net/vGAq5/2/
第一个警报将选择所有以下第二个兄弟姐妹,加回第二个。 第二个aler将选择所有后面的第二个兄弟,并取其父级(而不是将其添加到结果集中)。
答案 1 :(得分:3)
完全不同的方法:
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)
答案 2 :(得分:2)
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
和grandchild-1
。
addBack
通常用于在链接中横向移动DOM时,您想要一种简单的方法返回到先前的选择并进行另一次横切。