2011-06-03 2 views
1

Je suis assez nouveau à jquery et j'ai ce qui est probablement un problème très simple. J'essaie d'implémenter un menu déroulant pour la navigation sur un nouveau site, et en raison des limitations imposées par mon CMS, je suis incapable d'ajouter des classes aux <ul> auxquels la fonctionnalité flyout sera appliquée. sois appliqué.Assigner attr au niveau supérieur uls

Par exemple:

Modifier ceci:

<div class="SideCategoryListClassic"> 
<ul **class="fancynav"**> 
    <li class=""><a href="http://blah.com/categories/product/">Product</a> 
     <ul> 
      <li class="LastChild"> 
       <a href="http://blah.com/categories/product/Accessories/">Accessories</a> 
      </li> 
     </ul> 
    </li> 
</ul> 

<ul **class="fancynav"**> 
    <li class=""><a href="http://blah.com/categories/product/">Product</a> 
     <ul> 
      <li class="LastChild"> 
       <a href="http://blah.com/categories/product/Accessories/">Accessories</a> 
      </li> 
     </ul> 
    </li> 
</ul> 

à ceci:

<div class="SideCategoryListClassic"> 
<ul> 
    <li class=""><a href="http://blah.com/categories/product/">Product</a> 
     <ul> 
      <li class="LastChild"> 
       <a href="http://blah.com/categories/product/Accessories/">Accessories</a> 
      </li> 
     </ul> 
    </li> 
</ul> 

<ul> 
    <li class=""><a href="http://blah.com/categories/product/">Product</a> 
     <ul> 
      <li class="LastChild"> 
       <a href="http://blah.com/categories/product/Accessories/">Accessories</a> 
      </li> 
     </ul> 
    </li> 
</ul> 

Encore une fois, que c'est simple mais je ne suis pas sûr comment seulement attrapez les <ul> de niveau supérieur sans les imbriquer.

Répondre

2
$(".SideCategoryListClassic > ul") 

Ce ne reçoit que ul s qui sont des enfants directs de .SideCategoryListClassic

+0

donc ce serait $ (". SideCategoryListClassic> ul"). addClass ('fancyNav')? – erfling

+0

oui, cela devrait fonctionner. –

+0

Merci. Fonctionne parfaitement. maintenant je connais l'opérateur '>' dans ce contexte. Et merci pour l'explication. – erfling

0

Je pense que ce que vous voulez est quelque chose comme ce qui suit ...

$(".SideCategoryListClassic").children("ul").addClass("myClass"); 

le bit children("ul") n'obtenir le haut niveau <ul> étiquettes

+0

Il n'y a pas de raison d'utiliser 'each' ici, remplacez simplement' each' par l'appel 'addClass'. –

Questions connexes