我有这个由 jQuery 生成的代码,并且可以是 ul 和 n-list 项的 n 级
<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
<ul id="2" class="criteria">
<li id="2"> criteria 1
<ul id="3" class="criteria">
<li id="3">criteria 1</li>
<li id="4">criteria 2</li>
</ul>
</li>
<li id="3"> criteria 2</li>
</ul>
</li>
<li id="2"> criteria 2</li>
</ul>
</li>
</ul>
我想删除对应于它的id和level的li,我写了这个函数,其中level是ul的id,i是li的id
function removeElementLi(i,level){
// if one list item in un order list
if($("ul#criteria ul#"+level+" li").length ==1){
$("ul#criteria ul#"+level).remove();
}else{
$("ul#criteria ul#"+level+" li#"+i).remove();
}
}
但它没有用,我很感激任何帮助。
我将功能更改为
if($("ul[id="+level+"][class=criteria] li").length ==1){
$("ul[id="+level+"][class=criteria]").remove();
}else{
$("ul[id="+level+"][class=criteria] li#"+i).remove();
}
但是对于这个 html 代码
<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>
当我开始删除第二个 li 时,它可以工作,但是当我开始删除第一个 li 时,它不起作用。我提醒 jQuery 语句
ul[id=1][class=criteria] li#1
在这种情况下长度为 2