我需要了解jQuery,如果某个值在<li>
的{{1}}标记上,且带有某个标记:
<ul>
我如何检查jQuery,例如,<ul id="timeline">
<li>MyValue</li>
<li>MySecondValue</li>
</ul>
是否已经在MySecondvalue
上<ul>
?谢谢!
答案 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测试,以便在所有情况下使用相同的选择器,结果证明我错了。