2013-04-20 3 views
0

Например у меня есть простой списокКак выбрать только прямых детей в списке?

<ul> 
    <li></li> 
    <li></li> 
    <li> 
     <ul> 
      <li></li> 
      <li></li> 
      <li></li> 
     </ul> 
    </li> 
    <li></li> 
    <li> 
     <ul> 
      <li></li> 
      <li></li> 
      <li></li> 
     </ul> 
    </li> 
</ul> 

И я пытаюсь получить все <li> за исключением тех, что во втором <ul>. Сначала я пробовал ul li, затем ul > li, но все равно получаю все <li>.

+0

вы можете добавить класс/id до самого верхнего 'ul' –

ответ

1

Попробуйте

$('ul:first').children('li') 

Я не рекомендовал бы это, будет лучше добавить идентификатор/класс в верхней мкл и использовать его для выбора детей

<ul id="topul"> 
    <li></li> 
    <li></li> 
    <li> 
     <ul> 
      <li></li> 
      <li></li> 
      <li></li> 
     </ul> 
    </li> 
    <li></li> 
    <li> 
     <ul> 
      <li></li> 
      <li></li> 
      <li></li> 
     </ul> 
    </li> 
</ul> 

Тогда

$('#topul').children('li') 
+0

Спасибо, теперь я осознал свою ошибку – user1692333

0

Вы можете использовать

$('li').not('ul ul li') 

Это будет выбирать только первый уровень li элементы.

+0

Я не знаю, как именно' ul' будет ... – user1692333

1

использование > это как

jQuery("parent > child") 

поставить класс на первый ул, как

<ul class ='ul-parent'> 

и использовать селектор класса следующим

$('ul.ul-parent > li') 
Смежные вопросы