2014-11-25 29 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