このコードはjQueryによって生成されており、nレベルのulおよび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>
2番目のliを削除し始めると機能しますが、最初のliを削除し始めると機能しませんでした。jQueryステートメントに警告します
ul[id=1][class=criteria] li#1
この場合、長さは 2 です