jQuery参考实例 1.8 将前一次选择的元素集合并到当前选择的元素集中

本文翻译自jQuery Cookbook (O’Reilly 2009) 1.8 Including the Previous Selection with the Current Selection

需求

在对某元素集进行操作之后得到了一个新的元素集,而之后的操作需要在这两个集合的并集上进行。

解决方案

可以使用andSelf()方法将当前选择的DOM元素与前一次选择的DOM元素进行合并。比如,在下面的例子中,我们首先选择了页面上所有的<div>元素,然后搜寻所有包含在这些<div>元素中的<p>元素。此时,如果需要对这些<div>元素和<p>元素进行操作,我们可以用andSelf()方法。在下面的例子中,如果不使用andSelf(),那么只有<p>元素的边框颜色被改变。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
</head>  
<body>  
  <div>
    <p>Paragraph</p>
    <p>Paragraph</p>
  </div>
  <script type="text/JavaScript" src="http://ajax.googleapis.com/
    ajax/libs/jquery/1.3.2/jquery.min.js"></script>
  <script type="text/JavaScript">
    jQuery('div').find('p').andSelf().css('border','1px solid #993300');
  </script>
</body>  
</html>  

讨论

需要注意的是,在使用andSelf()的时候,只有之前一次选择的DOM元素会被合并进来,而再之前的元素则不会。