2014-11-25 33 views
0

我试图找到一种方法来将选择器应用到JQuery对象,以便它匹配包含在此对象中的集合,并且还通过他们的所有子节点“查找”。匹配选择器到当前设置和儿童

我的问题是,我只能找到方法“过滤器”不下降的树和“发现”,它只在当前元素的孩子开始其搜索。

我创建了一个例子:http://jsfiddle.net/ppd51pef/

<div class="foo"> 
    <div class="bar"> 
     <span>first:</span> 
    </div> 
</div> 
<div class="foo bar"> 
    <span>second:</span> 
</div> 

而且连同它的JavaScript:

var foos = $(".foo"); 
foos.find(".bar").append("<span>find</span> "); 
foos.filter(".bar").append("<span>filter</span> "); 
foos.find(".bar").addBack().filter(".bar").append("<span>ugly</span> "); 

这里我有相匹配的两个 “富” 类的jQuery “FOOS”。给定“foos”我想选择两个“栏”类。

例子的输出是:

first: find ugly 
second: filter ugly 

基本上我在寻求实现什么三个查询的第三个确实的少丑陋的方式。

回答

0

您可以使用addBack()版本选择

var foos = $(".foo"); 
 
foos.find(".bar").addBack('.bar').append("<span>ugly</span> ");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="foo"> 
 
    <div class="bar"> 
 
    <span>first:</span> 
 
    </div> 
 
</div> 
 
<div class="foo bar"> 
 
    <span>second:</span> 
 
</div>

+0

这是一个好一点的性能明智我猜,但还是丑陋的代码,因为我必须说明选择“的.bar”两次。 – kaymes 2014-11-25 06:03:07