2012-04-26 224 views
12
$('.test').css('background','red'); 

<div id="example">Some text</div> 

如何.addClass('test')如果#example包含單詞「text」?如果元素包含某些文本

+0

的解釋一下here你嘗試過什麼?坦率地說,這看起來像是對jQuery API的真正直接使用。 – 2012-04-26 08:10:18

+0

** 1。**拿出問題標題,在它前面添加「jquery」。 「jquery if元素包含某些文本」** 2。**轉到google並運行搜索。 – Joonas 2012-04-26 08:29:25

回答

16

只使用:contains僞類

$('#example:contains("text")').addClass('test'); 

這將類添加到#example如果它包含「文本」

+0

完美,謝謝! – UserIsCorrupt 2012-04-26 08:13:08

6

您可以使用$("#example")得到一個jQuery包裝的元素,那麼使用text()獲得其文本,並使用String#indexOf,例如:

var ex = $("#example"); 
if (ex.text().indexOf("text") !== -1) { 
    ex.addClass("test"); 
} 

您也可以使用:contains("text")在選擇器中爲F. Calderan shows,但請注意,當您使用這樣的非標準僞選擇器時,jQuery不能使用底層瀏覽器的內置元素來查找元素,因此它可能會變慢。以上將允許jQuery使用document.getElementById。儘管速度真的很重要,但只有少數幾種情況。

1

試試下面的代碼

$('#example:contains("text")').addClass('test'); 

有實例和:contains選擇

+0

我覺得裏面的測試應該是文字。 – Zafer 2012-04-26 08:13:38

+0

@Zafer錯字,感謝排序! :) – 2012-04-26 08:14:20

相關問題