1

.addBack() 和 .parent() 有什么区别?

似乎他们都只是遍历了一层并选择了元素。

4

3 回答 3

3

这取决于你来自哪里。 parent()将始终选择直接父元素,addBack()的结果取决于前一个选择器的结果:

.addBack([选择器])

返回:jQuery 描述:将堆栈上的前一组元素添加到当前组,可选地由选择器过滤。

查看以下 jsfiddle 示例:http: //jsfiddle.net/vGAq5/2/

第一个警报将选择第二个的所有后续兄弟,并添加第二个。第二个警报器将选择编号为 2 的所有后续兄弟,并获取其父级(而不是将其添加到结果集中)。

于 2013-07-26T23:23:57.967 回答
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/

http://api.jquery.com/parent/

基本示例:

考虑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)
于 2013-07-26T23:25:38.287 回答
3

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-oneand grandchild-1

addBack当您在链接中向下遍历 DOM 并且您想要一种简单的方法来返回先前的选择并进行另一次遍历时,通常会使用它。

于 2017-01-27T12:28:14.227 回答