Javascript Node Navigation

Dieses Thema im Forum "Webdesign" wurde erstellt von generals007, 20. Oktober 2010 .

  1. 20. Oktober 2010
    Habe nochmal ein HTML Dom Problem zur Navigation durch die Nodes in einem HTML Dokument:

    HTML:
    <div id="navBarHor">
    <ul class="navBarHor1">

    <li class="navBarHor1"><a href="http://www.xkcd.com" class="navBarHor1">Nummer eins</a></li>
    <li class="navBarHor1"><a href="http://www.xkcd.com" class="navBarHor1">XKCD</a></li>
    <li class="navBarHor1"><a href="http://www.xkcd.com" class="navBarHor1">Best Web Comic</a></li>

    </ul>
    </div>

    JAVASRIPT:
    function testThis() {
    x = document.getElementById("navBarHor").firstChild.nodeName;
    document.write(x);
    }


    Nun, wenn ich das firstChild rauslasse gibt er mir "DIV" zurück wenn ich die Funktion aufrufe, wenn ich es einbaue bekomme ich "#text". Das liegt wohl daran, dass ich nach dem div starttag mindestens ein Leerzeichen habe. Frage: kann man es irgenwie so bewerkstelligen, dass der Code funktioniert egal ob ich zwischen dem <div> und dem <ul> ein Leerzeichen / einen Zeilenumbruch habe oder nicht? Würde mir die Addressierung der Nodes deutlich leichter machen. Falls es so eine Möglichkeit nicht gibt bin ich auch über negative Antworten bzw. Alternativvorschläge sehr glücklich.

    Gruß,
    gen
     
  2. 20. Oktober 2010
    AW: Javascript Node Navigation

    Code:
    function testThis() {
     var d = document.getElementById("navBarHor"),
     x = d.firstChild;
     
     if(x.nodeName == '#text')
     for(var i = 1, l = d.childNodes.length; i < l && x.nodeName == '#text'; ++i)
     x = d.childNodes[i];
     
     document.write(x.nodeName);
    }
     
  3. 20. Oktober 2010
    AW: Javascript Node Navigation

    Hmmm und das bei jedem mal wenn ich so eine Funktion schreibe? Definitiv nicht was ich gesucht habe, aber ich vermute dann gibt es nichts einfacheres.

    Danke dir.

    Gruß,
    gen
     
  4. 20. Oktober 2010
    AW: Javascript Node Navigation

    HTML:
    <div id="navBarHor">
    <ul class="navBarHor1">
    
    <li class="navBarHor1"><a href="http://www.xkcd.com" class="navBarHor1">Nummer eins</a></li>
    <li class="navBarHor1"><a href="http://www.xkcd.com" class="navBarHor1">XKCD</a></li>
    <li class="navBarHor1"><a href="http://www.xkcd.com" class="navBarHor1">Best Web Comic</a></li>
    
    </ul>
    </div>
    
    <script type="text/javascript">
    function testThis(suchNodeName, inEl) {
     var d = document.getElementById(inEl),
     x = d.firstChild;
     while (x.nodeName != suchNodeName.toUpperCase()){
     x = x.firstChild;
     }
     document.write(x.nodeName);
    }
    testThis('li', 'navBarHor');
    </script>
    
    was meinst du mit jedes mal?
    pack die function in ein JS-file und binde das in dein html ein.
     
  5. 20. Oktober 2010
    AW: Javascript Node Navigation

    Danke sehr

    Mit dem anderen Code konnte ich das Problem nicht auf andere Stellen übertragen ohne die Funktion neu zu schreiben. Mit Parametern ist das schon was anderes. Danke sehr BW für beide sind raus?

    Gruß,
    gen
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.