基于文本内容从jquery对象中过滤元素 [英] Filter elements out of a jquery object based on text content

查看:142
本文介绍了基于文本内容从jquery对象中过滤元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用包含与'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>


解决方案

这是你要找的? >

小提琴

  $(function(){
$('ul')。find('li')。filter(function(){
return
})

(c)('color','red'




或者在元素中的任何位置匹配(而不仅仅是两):



小提琴

  $(function(){
$('ul')。find('li')。filter(function(){
return /two/.test (this.innerHTML);
})。css('color','red')
})






另外,如果重要的是...链接方法( .find()。filter())似乎比使用包含更快:



为此具体创建的性能测试

另一个相关的测试



你的id应该是唯一的 - 但我假设它只是复制/粘贴示例代码,并且您实际上没有重复的ID在您的实际代码。


I am trying to use contains with 'this' keyword, but it is giving an error.

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>

解决方案

Is this what you are looking for?

Fiddle

$(function () {
    $('ul').find('li').filter(function () {
        return this.innerHTML == 'two';
    }).css('color','red')
})


Or to match it anywhere in the element (rather than only "two" being within it):

Fiddle

$(function () {
    $('ul').find('li').filter(function () {
        return /two/.test(this.innerHTML);
    }).css('color','red')
})


Also, if it matters... chaining methods (.find().filter()) seems to be faster than using contains:

Performance test created for this specifically
Another related test

And your id's should be unique - but I'm assuming that it is just copy/pasting for sample code and that you don't actually have duplicate id's in your actual code.

这篇关于基于文本内容从jquery对象中过滤元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆