使用jQuery检查<li>标记上是否已存在值</li>

时间:2011-10-07 19:36:07

标签: javascript jquery html

我需要了解jQuery,如果某个值在<li>的{​​{1}}标记上,且带有某个标记:

<ul>

我如何检查jQuery,例如,<ul id="timeline"> <li>MyValue</li> <li>MySecondValue</li> </ul> 是否已经在MySecondvalue<ul>?谢谢!

4 个答案:

答案 0 :(得分:7)

$("ul li").filter(function() {
    return $(this).text() == "MySecondValue";
}).length;

如果该表达式返回0,则它不在列表中。否则就是。

答案 1 :(得分:6)

if ( $('ul li:contains("MySecondValue")').length ) {
    //exists
}

答案 2 :(得分:1)

做这样的事情:

$('ul li').each(function(){ 
     if($(this).text()=='MySecondvalue') alert('already exists');
}

答案 3 :(得分:1)

不完全jQuery-ish,但根据要过滤的元素数量,这可能是最高效的方式:

function alreadyInTimeline(text) {
    return ($('#timeline').html().match(new RegExp('\>(' + text + ')\<')) !== null);
}

alert(alreadyInTimeline('MyValue'));

比照the performance comparison of the answers given here so far on for a rather small timeline

编辑:忽略这一点,我刚刚更新了jsperf测试,以便在所有情况下使用相同的选择器,结果证明我错了。