0

http://jsfiddle.net/aWp2g/2/

css

.highlight {
    color: yellow;
}

html

<div>fox</div>
<div>brown</div>

jQuery

if ($('div').text() == 'fox') {
    this.addClass('highlight');
}

我上面的代码不起作用,我希望它向包含特定文本的元素添加一个类,以便它应用突出显示的 css。

4

3 回答 3

3

this在您的代码中指的是window对象。 .text()方法返回所有选中元素的文本内容,返回值为:foxbrown不等于fox

您可以使用:contains选择器来选择包含特定文本的元素:

$('div:contains(fox)').addClass('highlight');

完全符合:

$('div').filter(function() {
   return (this.textContent || this.innerText) === 'fox';
}).addClass('highlight');
于 2013-09-04T20:25:31.203 回答
2

正如@undefined 提到的

$('div').filter(function() {
   return (this.textContent || this.innerText) === 'fox';
}).addClass('highlight');

应该可以正常工作——但也要记住让你的 jsfiddle 包含 jquery,否则它将无法正常运行。

于 2013-09-04T20:56:24.717 回答
0

试试 :empty 选择器。它不会帮助您处理某些文本,而是文本存在。

于 2016-08-03T16:04:30.713 回答