如果元素包含特定文本

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

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

如果#example包含单词"text",我该如何使用.addClass('test')


你尝试过什么?坦白地说,这似乎是使用jQuery API非常简单明了的一个例子。 - T.J. Crowder
  1. 取问题标题,加上“jquery”。例如:“jquery如果元素包含特定文本”
  2. 前往谷歌并运行搜索。
- Joonas
3个回答

20

只需使用:contains伪类。

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

如果#example包含“text”,则会将类添加到它。


6

您可以使用$("#example")获取元素的jQuery包装器,然后使用text()获取其文本,并使用String#indexOf进行搜索,例如:

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

您还可以在选择器中使用:contains("text"),就像F. Calderan展示的那样。但是请注意,当您使用非标准伪选择器时,jQuery无法使用底层浏览器内置的元素查找功能,因此可能会变慢。上述方法将允许jQuery使用document.getElementById。然而,只有在某些情况下速度才真正重要。


1

请尝试以下代码

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

请点击这里查看:contains选择器的示例和解释。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接