2012-10-09 53 views
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和水平(UL的ID)

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

我的問題是,當我首先開始立我無法將其刪除,但是當我在第二個開始我將其刪除,並刪除第一,沒有任何問題

+4

您使用的是HTML5文檔類型? '<!doctype html>'否則,你的'id =「1」和id =「2」'是無效的。 –

+15

ID在文檔中應該是唯一的。你不應該重複這樣的ID –

+1

作爲一個快速修復而不修復唯一的ID問題,你應該能夠簡單地用'$(「ul [id =」+ level +「] [class = criteria] li替換else remove [編號=「+ i +」]「)。remove();' –

回答

2

作爲一個快速修復而沒有解決唯一的id問題,你應該能夠簡單地用$("ul[id="+level+"][class=criteria] li[id="+i+"]").remove();

簡單地替換刪除。顯然,從長遠來看,更好的解決方案是不使用重複的id。