2010-05-05 5 views
3

Вот структура содержания, я хочу, чтобы выбрать все LI, за исключением первых двух (т.е. не-ссылки)Как выбрать LI, кроме первого и второго?

jQuery(document).ready(function(){ 

    var nosubnav = jQuery('.first-level li:not(:has(ul))'); 
    var nosubnavsize = jQuery('.first-level li:not(:has(ul))').size(); 
    jQuery(nosubnav).css('border' , '1px solid red'); 
    alert('List item which does not have submenu '+nosubnavsize); 

}); 

div class="navigation-container"> 
    <ul class="first-level"> 
    <li><a href="#">No Link</a></li> 
    <li><a href="#">No Link</a></li> 
     <li><a href="#">Link 1</a></li> 
     <li><a href="#">Link 2</a> 
     <ul> 
      <li><a href="#">Link2.1</a></li> 
      <li><a href="#">Link2.2</a> 
      <ul> 
       <li><a href="#">Link 2.2.1</a></li> 
      </ul> 
      </li> 
     </ul> 
     </li> 
     <li><a href="#">Link </a></li> 
    </ul> 
    </div> 

связанный Вопрос: How to count li which does not have ul?

ответ

9
$("ul.first-level > li:gt(1)").hide() 

Я предполагаю, что вы говорите о LIS, которые находятся на верхнем уровне, то есть прямые потомки .first-level. В противном случае вы можете опустить родительский дочерний селектор (>).

http://api.jquery.com/gt-selector/

+0

спасибо ,, это работает :) –

0
li + li + li, ul ul li 

т.е. элемент, который находится рядом с элементом, находящимся рядом с элементом, или элементом, находящимся внутри списка, который находится внутри списка.

0

Просто дайте первые две li's КАС-класса (например, "noLink") и использовать

$("li:not('.noLink')").hide(); //or whatever 
Смежные вопросы