只有在尚未存在的情况下才添加li元素?

时间:2010-05-30 05:57:21

标签: javascript jquery

我正在构建一个<li>这样的元素:

var element = $("<li></li>") 
    .html(mHTML)  
    .attr('id', "elemid");

我正在尝试将此元素添加到<ul>元素,前提是它尚不存在。关于如何做到这一点的任何想法?我应该使用contains()查看ul元素是否包含html然后决定?例如,

<ul id="elemul">
  <li id="elemli1">Element 1</li>
  <li id="elemli2">Element 2</li>
  <li id="elemli3">Element 3</li>
</ul>

如果我尝试添加元素1,则不应添加它。如果它是一个更长的字符串(不是很长但是大约150个字符),我该怎么办。

注意:我不能依赖ID来确定唯一性。即我最终可能形成如下内容:<li id="elemli3">Element 1</li>

我是否开始使用哈希图?

2 个答案:

答案 0 :(得分:2)

我不是jQuery用户,所以请耐心等待。但是,本机JavaScript可以很容易地转换为jQuery代码。

if (!document.getElementById('elemli1')) {
  var elemli1 = document.createElement('li');
  elemli1.id = 'elemli1';
  document.getElementById('elemul').appendChild(elemli1);
}

如果要在列表中根本没有列表项的情况下创建元素,请将if表达式替换为:

!document.getElementById('elemul').childNodes.length

答案 1 :(得分:2)

if(!$('#elemul li:contains("Element 1")').length)
{
    $('#elemul').append($('li').attr('id', 'elemli1').text('Element 1'));
}