.andSelf()| jqueryAPI 2.2 中文手册- AspRain.cn 致力于Web开发技术翻译整理

jQuery API 2.2.0

.andSelf()

分类:建议弃用 > 建议弃用于1.8 | 遍历 > 杂项遍历

返回: jQuery
弃用于:1.8

.andSelf()

描述:把堆栈中前一个元素的集合添加到当前集合。

加入于: 1.2
.andSelf()

该方法不能接受任何参数。

注意:该方法已经被建议弃用,现在有一个别名.addBack(),它用在jQuery 1.8版及之后的版本中。

正如讲解.end()的页面所描述的,jQuery对象保留了一个内部堆栈,以保存元素的匹配集合的变化。在调用一种DOM遍历方法的时候,新的元素集合被跟加到堆栈中。如果又想要元素的前一个集合了,.addSelf()能够帮助你。

设想有一个网页,带有一个简单的<li;>列表:

<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>

下面的代码的结果是item3、item4和item5后面有红色的背景:

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

首先,初始选择器定位到item3,初始化堆栈带有只包含这个项目的集合。调用.nextAll(),把item4和item5的集合跟回到推栈中。最后,调用.addSelf()把两个集合合并到一起,创建了一个jQuery对象,指向全部3个项目,按照它们在document中的顺序:[ <li.third-item>, <li>, <li> ]

示例

.addSelf()方法导致遍历堆栈中前一个DOM元素集合被添加到当前的集合中。在第一个示例中,顶级堆栈包含了来自.find("p")的结果集。在第二个示例中,.addSelf()把堆栈中的前一个元素集合——在这个示例中是$("div.after-addback")——添加到当前集合,选择两个div以及它们所封装的段落文本。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>andSelf 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-1.10.2.js"></script>
</head>
<body>
 
<div class="left">
  <p><strong>Before <code>andSelf()</code></strong></p>
  <div class="before-andself">
    <p>First Paragraph</p>
    <p>Second Paragraph</p>
  </div>
</div>
<div class="right">
  <p><strong>After <code>andSelf()</code></strong></p>
  <div class="after-andself">
    <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-andself" ).find( "p" ).addClass( "background" );
 
// Second Example
$( "div.after-andself" ).find( "p" ).andSelf().addClass( "background" );
</script>
 
</body>
</html>

演示结果

如果网页上不能运行示例,请点击http://www.asprain.cn/jQueryAPI/andself.htm查看示例。

如果你觉得本文档对你有用,欢迎给翻译作者支付宝打赏,支持翻译作者源源不断翻译更多有用的技术文档。