我正在尝试将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/

10-12 12:27
查看更多