我是jQuery的新手,我正在尝试在列表中插入一个新的<li>
项,但前提是此项尚不存在。例如:
<ul id="myList">
<li>Item 1</li>
<li>Item 2</li>
</ul>
即,“第7项”应插入,但不应插入“第1项”。我对这些陈述感到疯狂:
var ListItems = $('#myList li').find('Something');
var ListItems = $('#myList li').html() == 'something';
var exist = $('#myList li').each(){
if($(this).html == 'something')
return false;
});
这些代码只是检查是否存在<li>
项,而不是在列表中插入。我假设这些选项很疯狂,但我正在努力学习。
正确的方法是什么?有什么建议或意见吗?
答案 0 :(得分:3)
编辑以避免误报
这将逐个检查元素,其中包含的文本必须与提供的文本完全匹配。
var itemName = 'Item 2';
var itemFound = false;
$('#myList li').each( function () {
if ( $(this).text() === itemName )
{
itemFound = true;
}
});
if ( itemFound == true )
{
alert( 'item already present' );
}
else
{
alert( 'item not present' );
// add item here
}
答案 1 :(得分:2)
试试这个:
if(!$('#myList li:contains("Text here")').length) {
// Insert your new li
}
它使用:contains
选择器查找包含li
的所有Text here
元素。
jQuery在这里返回一个数组,因此我们可以在其上使用.length
。如果返回的长度为零,那么我们插入新的li
,因为没有包含给定文本的现有元素。