如果元素使用jQuery中的某些文本内容,我该如何将css应用于元素?

时间:2013-09-04 20:20:15

标签: jquery if-statement element

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。

3 个答案:

答案 0 :(得分:3)

代码中的

this引用了window个对象。 .text()方法返回所有选定元素的文本内容,返回值为:foxbrown,不等于fox

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

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

完全匹配:

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

答案 1 :(得分:1)

正如@undefined提到的那样

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

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

答案 2 :(得分:0)

尝试:空选择器。它不会帮助你处理某些文本,但文本存在。