Enrico: jQuery: each begrenzen

Beitrag lesen

Hallo,

ich habe folgende Menüstruktur:

  
   <ul>  
      <li class="RubrikOben"></li>  
      <li class="RubrikMitte">Warenkorb</li>  
      <li class="RubrikUnten"></li>  
      <li class="AbgelegteArtikel">Leer</li>  
      <li class="RubrikAbschluss"></li>  
      <li class="RubrikOben"></li>  
      <li class="RubrikMitte">Menü</li>  
      <li class="RubrikUnten"></li>  
      <li>  
+->      <ul>  
| [H]       <li>Startseite</li>  
| [H]       <li>Wir über uns  
|              <ul>  
| [U]             <li>Wir über uns</li>  
| [U]             <li>Termine</li>  
| [U]             <li>Fotos</li>  
|              </ul>  
|           </li>  
| [H]       <li>Rüstzeug  
|              <ul>  
|                 ...  
|              </ul>  
|           </li>  
|           ...  
+->      </ul>  
      </li>  
   </ul>  

Der eingefasste Bereich beinhaltet das eigentliche Menü.

Was macht mehr Sinn?

IDs für spätere Aktionen hart im html-Code einzugeben (<li id="H1">Startseite</li>) oder über jQuery zuordnen zu lassen?

Mir geht es darum, die mit [H] gekennzeichneten Menüpunkte als Hauptmenüpunkte zu kennzeichnen und die mit [U] gekennzeichneten Menüpunkte als Untermenüpunkte, damit ich später mit diesen IDs arbeiten kann.

Wenn es mehr Sinn macht, dies über jQuery zu bewerkstelligen, da eben weniger übertragen werden muss, dann hänge ich an diesem Vorhaben.

Mein jetziger Ansatz sieht folgendermaßen aus:

  
$("ul li ul li:not(ul)").each(function(i)  
{  
   $(this).attr("id", "H" + (i + 1));  
});  

Hier werden aber alle li-Elemente durchlaufen, auch die weiterer Listen, und nicht, wie eigentlich beabsichtigt, nur die Ebene "ul li ul li" ohne gegebenenfalls weitere Listen.

Was meint ihr?

Wie kann ich die Schleife auf die gewünschte Ebene begrenzen?

Gruß,
Enrico