我有這個名單裏:如何將類添加到包含jQuery中的某個字符串的元素?
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
<li>item 5</li>
</ul>
我如何添加一個類「項目-3」到包含<li>
和</li>
標籤之間的「第3項」 li元素?
在此先感謝。
我有這個名單裏:如何將類添加到包含jQuery中的某個字符串的元素?
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
<li>item 5</li>
</ul>
我如何添加一個類「項目-3」到包含<li>
和</li>
標籤之間的「第3項」 li元素?
在此先感謝。
嘗試使用以下
$(document).ready(function() {
$('ul li').each(function() {
if ($(this).text() === "item 3") {
$(this).addClass('item-3');
}
});
});
$('li:contains("item 3")').addClass('item-3');
從文檔(http://api.jquery.com/contains-selector/):
匹配文本可以將選定元件內直接出現,在 任何該元素的後代,或其組合。與 屬性值選擇器一樣,括號內的文字爲:contains() 可以寫成單詞或用引號括起來。 文本必須具有要選擇的匹配大小寫。
這裏有一個的jsfiddle:http://jsfiddle.net/jasper/2wcqW/
就像旁註:':contains()'選擇器是區分大小寫的。不區分大小寫的搜索需要'.filter()'和一個自定義函數。 – Tomalak
$("li").each(function(){
if($(this).text() == "Item 3"){
$(this).addClass("item-3");
}
});
$('li').filter(function(){
return $(this).text() === 'item 3'
}).addClass('yourClass');
+1 FWIW,這是間最快的方法:':包括()','$。每個()'和'.filter() '。這裏有一些證明:http://jsperf.com/jquery-each-vs-contains – Jasper
+1 FWIW;這比使用':contains'更快。這裏是一個jsperf來證明:http://jsperf.com/jquery-each-vs-contains – Jasper
@Jasper我以前從未見過那樣的景象。驚人。 – JaredPar
過濾器總是最快的方式來完成這種任務,或者它是特定的情況嗎? – arb