2017-01-09 84 views
0

我無法使用以下命令定位列表項中的第一個元素:first。將父元素的第一個元素作爲目標

<li data-id="321"> 
    <ul> 
     <li data-id="380"> 
      <ul> 
       <li data-id="385"></li> 
      </ul> 
     </li> 
     <li data-id="382"></li> 
    </ul> 
</li> 
$(".drop .position").click(function() { 
    $this = $(this); 
    $targetID = $(".box-cont.active ").closest("li.box").data("id"); 
    $childrenArray = new Array(); 
    if ($target.find("ul:first").find("li").length > 0) { 
     $target.find("ul:first").find("li").each(function() { 
      $this = $(this); 
      $childrenArray.push($this.data("id")); 
     }); 
     alert($childrenArray); 
    } else { 
     alert("no children"); 
    } 

我只是想第一UL的兒童提供內部321相反,我加380,382,和385的陣列時,我只想增加380和382

+0

您的示例HTML中沒有任何引用的元素('.box-cont'或'li.box'等)。 – moopet

+0

什麼'div'?在你的例子中,我沒有看到'div' –

+2

聽起來好像你只需要'$ target.find(「ul:first> li」)。each(function()'(或者甚至更好:'map()')一個更完整的HTML樣本將證實這一點 –

回答

2

它會找到所有的李,的確。你想要的是直系後代。 要麼替換查找孩子,要麼使用"ul:first>li"作爲您的jQuery選擇器

相關問題