如何在追加之前检查现有的“li”项目?

时间:2011-11-29 18:14:26

标签: jquery

我是jQuery的新手,我正在尝试在列表中插入一个新的<li>项,但前提是此项尚不存在。例如:

<ul id="myList">
      <li>Item 1</li>
      <li>Item 2</li>
</ul>

即,“第7项”应插入,但不应插入“第1项”。我对这些陈述感到疯狂:

  1. var ListItems = $('#myList li').find('Something');

  2. var ListItems = $('#myList li').html() == 'something';

  3. var exist = $('#myList li').each(){
        if($(this).html == 'something')
            return false;
    });
    
  4. 这些代码只是检查是否存在<li>项,而不是在列表中插入。我假设这些选项很疯狂,但我正在努力学习。

    正确的方法是什么?有什么建议或意见吗?

2 个答案:

答案 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
}

check example here

答案 1 :(得分:2)

试试这个:

if(!$('#myList li:contains("Text here")').length) {
    // Insert your new li
}

它使用:contains选择器查找包含li的所有Text here元素。

jQuery在这里返回一个数组,因此我们可以在其上使用.length。如果返回的长度为零,那么我们插入新的li,因为没有包含给定文本的现有元素。