2010-05-05 5 views
3

Voici la structure du contenu, je veux tout sélectionner LI, sauf les deux premiers (ie sans lien)Comment sélectionner LI sauf première et seconde?

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> 

Question connexe: How to count li which does not have ul?

Répondre

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

Je suppose que vous parlez du LIs qui sont sur le haut niveau, à savoir les descendants directs de .first-level. Sinon, vous pouvez omettre le sélecteur d'enfant parent (>).

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

+0

merci ,, cela fonctionne :) –

0
li + li + li, ul ul li 

c'est-à-dire un élément qui est à côté d'un élément qui se trouve à côté d'un élément, ou un élément qui se trouve dans une liste qui se trouve dans une liste.

0

Il suffit de donner les deux premiers li's une classe CSS (par exemple "nolink") et utiliser

$("li:not('.noLink')").hide(); //or whatever 
Questions connexes