1

JavaScript関数によって生成されたこのhtmlコードがあります。この単純なケースでは、1レベルの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>

id と level(id of ul) に対応する li を削除する JavaScript 関数

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で開始するときは削除できませんが、2番目のもので開始するときは削除し、最初のものを問題なく削除します

4

1 に答える 1

2

一意のIDの問題を修正せずに簡単に修正するには、else removeを単純に置き換えることができるはずです$("ul[id="+level+"][class=criteria] li[id="+i+"]").remove();

ただし、明らかに、長期的には重複した ID を使用しない方が良い解決策になります。

于 2012-10-09T21:23:56.200 に答える