1

我有这个由 JavaScript 函数生成的 html 代码,在这个简单的例子中,我只有一个级别的 ul 和 2 个 li 元素

<ul id="criteria">
    <li>Goal
    <img id="add_criterion" class="add_criterion" src="../images/icons/add-icon.png">
        <ul id="1" class="criteria">
            <li id="1">criteria 1</li>
            <li id="2">criteria 2</li>
        </ul>
    </li>
 </ul>

和我的 JavaScript 函数来删除对应于 id 和 level(id of ul) 的 li

if($("ul[id="+level+"][class=criteria] li").length ==1){
    $("ul[id="+level+"][class=criteria]").remove();
}else{
    $("ul[id="+level+"][class=criteria] li#"+i).remove();
}

我的问题是当我从第一个 li 开始时我无法删除它,但是当我从第二个开始时我删除它并删除第一个没有问题

4

1 回答 1

2

作为不修复唯一 id 问题的快速修复,您应该能够简单地将 else remove 替换为$("ul[id="+level+"][class=criteria] li[id="+i+"]").remove();

显然,从长远来看,更好的解决方案是不使用重复的 id。

于 2012-10-09T21:23:56.200 回答