2011-12-02 38 views

回答

2

嘗試使用以下

$(document).ready(function() { 
    $('ul li').each(function() { 
    if ($(this).text() === "item 3") { 
     $(this).addClass('item-3'); 
    } 
    }); 
}); 

小提琴:http://jsfiddle.net/srpAX/

+1

+1 FWIW;這比使用':contains'更快。這裏是一個jsperf來證明:http://jsperf.com/jquery-each-vs-contains – Jasper

+0

@Jasper我以前從未見過那樣的景象。驚人。 – JaredPar

+0

過濾器總是最快的方式來完成這種任務,或者它是特定的情況嗎? – arb

13
$('li:contains("item 3")').addClass('item-3'); 

從文檔(http://api.jquery.com/contains-selector/):

匹配文本可以將選定元件內直接出現,在 任何該元素的後代,或其組合。與 屬性值選擇器一樣,括號內的文字爲:contains() 可以寫成單詞或用引號括起來。 文本必須具有要選擇的匹配大小寫。

這裏有一個的jsfiddle:http://jsfiddle.net/jasper/2wcqW/

+0

就像旁註:':contains()'選擇器是區分大小寫的。不區分大小寫的搜索需要'.filter()'和一個自定義函數。 – Tomalak

1
$("li").each(function(){ 
    if($(this).text() == "Item 3"){ 
     $(this).addClass("item-3"); 
    } 
}); 
2
$('li:contains("item 3")').addClass('item-3'); 
+0

將正常工作,但我不認爲這是必要的上行線路上的第一選擇 – jbabey

5
$('li').filter(function(){ 
    return $(this).text() === 'item 3' 
}).addClass('yourClass'); 
+2

+1 FWIW,這是間最快的方法:':包括()','$。每個()'和'.filter() '。這裏有一些證明:http://jsperf.com/jquery-each-vs-contains – Jasper

相關問題