2009-10-14 8 views
0
<ul> 
    <li><a href="#">LEVEL 1</a> 
     <ul> 
     <li>...</li> 
     </ul> 
    </li> 
    <li><a href="#">LEVEL 1</a> 
     <ul> 
     <li>...</li> 
     </ul> 
    </li> 
</ul> 

J'ai une liste imbriquée et je veux utiliser jQuery pour ajouter la classe à la LI qui containts A>LEVEL 1 basé sur cette condition: if a nested UL exists AFTER UL LI A, do x else y.Trouver élément et ajouter la classe (jQuery)

Merci.

+0

où et quand voulez-vous ajouter la classe? en x? en y? –

Répondre

5

Pour ajouter simplement une classe aux <li> éléments qui ont un point d'ancrage suivi d'un <ul> faire ceci:

$("ul li:has(a + ul)").addClass("someClass"); 

Si vous avez vraiment besoin des classes différentes sur s'il est vrai, alors vous aurez besoin d'un code:

$("ul li").each(function() { 
    var a = $(this).children("a"); 
    if (a.next("ul").length > 0) { 
    $(this).addClass("first"); 
    } else { 
    $(this).addClass("second"); 
    } 
}); 
+0

Ah, je l'ai juste compris: $ (". Accordéon ul li: a (ul)"). AddClass ("CLASSY") mais le tien encore mieux, merci! – 3zzy

Questions connexes