当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JQuery .addBack()用法及代码示例


用法
.addBack(  [selector ] ) => jQuery

说明:将堆栈上的前一组元素添加到当前组,可选地由选择器过滤。

  • 添加的版本:1.8.addBack( [selector ] )

    • selector
      类型:Selector
      一个包含选择器表达式的字符串,用于匹配当前的元素集。

正如 .end() 的讨论中所述,jQuery 对象维护一个内部堆栈,用于跟踪对匹配的元素集的更改。当调用其中一个 DOM 遍历方法时,新的一组元素被压入堆栈。如果还需要前一组元素,.addBack() 可以提供帮助。

考虑一个带有简单列表的页面:

<ul>
  <li>list item 1</li>
  <li>list item 2</li>
  <li class="third-item">list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
</ul>

以下代码的结果是项目 3、4 和 5 后面的红色背景:

$( "li.third-item" ).nextAll().addBack()
  .css( "background-color", "red" );

首先,初始选择器定位项目 3,使用仅包含该项目的集合初始化堆栈。对.nextAll() 的调用然后将项目 4 和 5 的集合推入堆栈。最后,.addBack() 调用将这两个集合合并在一起,创建一个 jQuery 对象,该对象指向文档顺序中的所有三个项目:{[<li.third-item>,<li>,<li> ]}

例子:

.addBack() 方法将遍历堆栈中的前一组 DOM 元素添加到当前集合中。在第一个示例中,顶部堆栈包含由 .find("p") 生成的集合。在第二个示例中,.addBack() 将堆栈上的前一组元素(在本例中为 $("div.after-addback"))添加到当前集合,同时选择 div 及其包含的段落。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>addBack demo</title>
  <style>
  p, div {
    margin: 5px;
    padding: 5px;
  }
  .border {
    border: 2px solid red;
  }
  .background {
    background: yellow;
  }
  .left, .right {
    width: 45%;
    float: left;
  }
  .right {
    margin-left: 3%;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<div class="left">
  <p><strong>Before <code>addBack()</code></strong></p>
  <div class="before-addback">
    <p>First Paragraph</p>
    <p>Second Paragraph</p>
  </div>
</div>
<div class="right">
  <p><strong>After <code>addBack()</code></strong></p>
  <div class="after-addback">
    <p>First Paragraph</p>
    <p>Second Paragraph</p>
  </div>
</div>
 
<script>
$( "div.left, div.right" ).find( "div, div > p" ).addClass( "border" );
 
// First Example
$( "div.before-addback" ).find( "p" ).addClass( "background" );
 
// Second Example
$( "div.after-addback" ).find( "p" ).addBack().addClass( "background" );
</script>
 
</body>
</html>

演示:

相关用法


注:本文由纯净天空筛选整理自jquery.com大神的英文原创作品 .addBack()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。