.addBack()
描述:添加元素在堆栈上的当前设置,选择过滤选择器。
.addback([selector]);
selector
一个字符串包含一个选择器表达式来匹配当前元素的元素集合。
作为.end()讨论中描述,jQuery对象维护一个内部堆栈跟踪的变化匹配元素的元素集合。当一个DOM遍历方法被调用时,新的元素被压入堆栈。如果前面的设置需要的元素,.addBack()可以帮助。
例子:
.addBack() 方法会导致前面的DOM遍历栈中的元素被添加到当前的设置。在第一个示例中,造成顶部堆栈包含设置.find(“p”)。在第二个示例 中,.addBack()添加之前的元素在堆栈上——在这种情况下设置当前的$(“div.after-addback”)——当前的设置,选择两个 div及其封闭的段落。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>addback demo</title>
<script src="jquery-1.10.2.js"></script>
<style>
p,div{ margin:5px; padding:5px;}
.border{ border:2px solid #0F0;}
.background{ background:#CCC;}
.left, .right{ width:45%; float:left;}
.right{ margin-left:3%S;}
</style>
</head>
<body>
<div class="left">
<p><strong>第一个<code>addback()</code></strong></p>
<div class="before-addback">
<p>第一段</p>
<p>第二段</p>
</div>
</div>
<div class="right">
<p><strong>第二个<code>addback()</code></strong></p>
<div class="after-addback">
<p>第一段</p>
<p>第二段</p>
</div>
</div>
<script>
$("div.left, div.right").find("div,div > p").addClass("border");
$("div.before-addback").find("p").addClass("background");
$("div.after-addback").find("p").addBack().addClass("background");
</script>
</body>
</html>
效果图:
andSelf();
描述:添加元素在堆栈上的当前设置。
.andSelf()
这个方法不接受任何参数。
注意:这个函数被弃用,现在的别名.addBack(),应使用jQuery 1.8及以后。
作为.end()讨论中描述,jQuery对象维护一个内部堆栈跟踪的变化匹配元素的元素集合。当一个DOM遍历方法被调用时,新的元素被压入堆栈。如果前面的设置需要的元素,.andSelf()可以帮助。
andSelf()和addback()用法相同,例子:
<script>
$("div.left, div.right").find("div,div > p").addClass("border");
$("div.before-addback").find("p").addClass("background");
$("div.after-addback").find("p").andSelf().addClass("background");
</script>
效果图: