如果元素包含某些文本

时间:2012-04-26 08:08:12

标签: javascript jquery

$('.test').css('background','red');

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

如果.addClass('test')包含“text”一词,我该如何#example

3 个答案:

答案 0 :(得分:16)

只需使用:contains伪类

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

如果它包含'text'

,则会将该类添加到#example

答案 1 :(得分: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。但是,只有少数情况下速度才真正重要。

答案 2 :(得分:1)

尝试以下代码

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

有关:contains选择器

的示例和说明,请查看here