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

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

.addClass('test')如果#example包含“文本”一词,我该怎么办?

4

3 回答 3

19

只使用:contains伪类

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

#example如果它包含“文本”,这将添加该类

于 2012-04-26T08:10:36.960 回答
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. 不过,只有少数情况下速度真的很重要。

于 2012-04-26T08:10:50.460 回答
1

试试下面的代码

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

在这里查看:contains选择器的示例和解释

于 2012-04-26T08:12:22.840 回答