Tommi: HTML-Element innerhalb einer Klasse ansprechen

Hallo,

folgendes Beispiel:

  
<ul id="nr-1">  
<li>a</li>  
<li>b</li>  
</ul>  
  
<ul id="nr-2">  
<li>s</li>  
<li>d</li>  
</ul>  

Wie kann ich nun alle <li>s in <ul id="nr-2"> ansprechen?

Irgendwie so?!
document.getElementById('nr-2').???.???.li.style.display = 'block';

Danke
Tom

  1. Hallo,

    Wie kann ich nun alle <li>s in <ul id="nr-2"> ansprechen?

    Irgendwie so?!
    document.getElementById('nr-2').???.???.li.style.display = 'block';

    Entweder per getElementsByTagName():

      
    var LIs = document.getElementById('nr-2').getElementsByTagName("li"); //Alle IDs als Collection speichern  
    for (var i = 0; i < LIs.length; i++) //Alle Elemente der Collection durchalufen  
     LIs[i].style.display = 'block'; //Style-Property setzen  
    
    

    Oder per ChildNodes:

      
    var LIs = document.getElementById('nr-2').childNodes; //Alle IDs als Array speichern  
    for (var i = 0; i < LIs.length; i++){ //Alle Elemente der Collection durchalufen  
     if (LIs[i].nodeType == 1 && LIs[i].nodeName == "li")  
      LIs[i].style.display = 'block'; //Style-Property setzen  
    }  
    
    

    Letztere Variante solltest du verwenden, wenn sich innerhalb der <li>s eine weitere Liste befindet, die du nicht ansprechen willst.

    mfg. Daniel

    1. Hallo Daniel,

      var LIs = document.getElementById('nr-2').getElementsByTagName("li"); //Alle IDs als Collection speichern
      for (var i = 0; i < LIs.length; i++) //Alle Elemente der Collection durchalufen
      LIs[i].style.display = 'block'; //Style-Property setzen

        
      Super, das klappt, vielen Dank!  
        
      Tom
      
  2. Hellihello,

    warum gibts du dem ul denn nicht noch eine Klasse und machst es dann mit CSS?

    Gruß,

    frankx

    1. Hallo frankx,

      warum gibts du dem ul denn nicht noch eine Klasse und machst es dann mit CSS?

      Ja, schon klar, das ganze soll aber etwas interaktiver werden. Also, dass man per Klick bestimmte Elemente ein- und ausblenden kann.

      Tom