當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。