我正在构建一个<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>
我是否开始使用哈希图?
答案 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'));
}