我正在尝试将contains
与'this'关键字一起使用,但出现错误。
JS
$(function(){
var check=$('ul').find('li').filter(function(){
return $(this:contains('two')).css('color','red')
})
})
HTML
<ul>
<li id="one">one</li>
<li id="two">two</li>
<li id="one">one</li>
<li id="two">two</li>
<li id="one">one</li>
<li id="two">two</li>
<li id="one">one</li>
<li id="two">two</li>
<li id="one">one</li>
<li id="two">two</li>
</ul>
最佳答案
这是你想要的?
Fiddle
$(function () {
$('ul').find('li').filter(function () {
return this.innerHTML == 'two';
}).css('color','red')
})
或匹配元素在元素中的任何位置(而不是其中仅包含“两个”):
Fiddle
$(function () {
$('ul').find('li').filter(function () {
return /two/.test(this.innerHTML);
}).css('color','red')
})
另外,如果有关系...链接方法(
.find().filter()
)似乎比使用contains
更快:Performance test created for this specifically
Another related test
而且您的ID应该是唯一的-但我假设它只是示例代码的复制/粘贴,并且您实际的代码中实际上没有重复的ID。
关于javascript - 根据文本内容从jquery对象中过滤元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18317082/