css
.highlight {
color: yellow;
}
html
<div>fox</div>
<div>brown</div>
jQuery
if ($('div').text() == 'fox') {
this.addClass('highlight');
}
我上面的代码不起作用,我希望它向包含特定文本的元素添加一个类,以便它应用突出显示的 css。
css
.highlight {
color: yellow;
}
html
<div>fox</div>
<div>brown</div>
jQuery
if ($('div').text() == 'fox') {
this.addClass('highlight');
}
我上面的代码不起作用,我希望它向包含特定文本的元素添加一个类,以便它应用突出显示的 css。
this
在您的代码中指的是window
对象。
.text()
方法返回所有选中元素的文本内容,返回值为:foxbrown
不等于fox
。
您可以使用:contains
选择器来选择包含特定文本的元素:
$('div:contains(fox)').addClass('highlight');
完全符合:
$('div').filter(function() {
return (this.textContent || this.innerText) === 'fox';
}).addClass('highlight');
正如@undefined 提到的
$('div').filter(function() {
return (this.textContent || this.innerText) === 'fox';
}).addClass('highlight');
应该可以正常工作——但也要记住让你的 jsfiddle 包含 jquery,否则它将无法正常运行。
试试 :empty 选择器。它不会帮助您处理某些文本,而是文本存在。