2017-01-09 5 views
0

У меня возникли проблемы с ориентацией на первый элемент внутри элемента списка, используя: сначала.Первичный элемент цели внутри его родителя

<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"); 
    } 

Я только пытаюсь предназначаться для детей первого ул внутри 321. Вместо этого я добавляю 380, 382 и 385 в массив, когда я только хочу, чтобы добавить 380 и 382

+0

Ни один из элементов, которые вы ссылаетесь ('.box-cont' или' li.box' и т. Д.), Присутствует в вашем примере HTML. – moopet

+0

Что 'div'? Я не вижу 'div' в вашем примере –

+2

Кажется, вам просто нужно' $ target.find ("ul: first> li"). Each (function() '(или даже лучше:' map() '), хотя видя более полная выборка вашего HTML подтвердит это –

ответ

2

Это действительно найдет все ли. То, что вы хотите, - прямые потомки. Либо замените поиск детьми или используйте "ul:first>li" как ваш селектор jQuery

Смежные вопросы