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

Jquery .addBack()和.parent()之间有什么区别?,jquery,Jquery,.addBack()和.parent()之间有什么区别 看起来他们都只是向上遍历一个级别并选择元素。这取决于您来自哪里。 parent()将始终选择直接父元素,addBack()的结果取决于前面选择器的结果: .addBack([选择器]) 返回:jQuery 描述:将堆栈上的前一组元素添加到当前集合,可选地通过选择器进行过滤 查看以下JSFIDLE示例: 第一个警报将选择第二个的所有以下兄弟姐妹,然后再加上第二个。 第二个aler将选择第二个的以下所有同级,并获取其父级(而不是将其添加到结果

.addBack()和.parent()之间有什么区别


看起来他们都只是向上遍历一个级别并选择元素。

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

.addBack([选择器])

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

查看以下JSFIDLE示例:

第一个警报将选择第二个的所有以下兄弟姐妹,然后再加上第二个。
第二个aler将选择第二个的以下所有同级,并获取其父级(而不是将其添加到结果集中)。

完全不同的方法:

addBack() - add the current selection to the previous one and merges those selections

parent() - selects the direct parent of the current selection
查看官方文件:

基本示例:

以html为例:

<div id="parent">
    <div id="child">
    </div>
</div>

parent
的结果获取当前选择的直接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>

如果运行
$('.one').find('.grant-1').parent()
您将得到
child-1

如果运行
$('.the one').find('.green-1').addBack()
您将得到
the one
green-1


addBack
通常用于在链接中向下遍历DOM时,您需要一种简单的方法返回到上一个选择并执行另一个遍历。

addBack的API说“将堆栈上的前一组元素添加到当前集”。@nipponese-这是一样的。。将A添加到B与将B添加到A相同。。或者我不明白这个评论
<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>