2012-10-09 78 views
1

我的jQuery的代碼生成UL和李元素,可以進行UL的N級和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和水平,我寫了這個函數,其中一級是UL的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(); 
} 
} 

的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(); 
} 

但對於這個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> 

當我開始刪除第二個李,它的工作原理,但是當我開始刪除它沒第一李沒有工作。我提醒jQuery的聲明

ul[id=1][class=criteria] li#1 

,長度爲2在這種情況下

回答

1

當你有multiple elements與頁面上相同的ID和使用ID選擇器選擇元素的選擇器引擎只是將選擇遇到的第一個ID。

嘗試使用class而不是id