Frage zu DOM

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Frage zu DOM

    Moin,
    ich mag es zwar nicht, muß aber eine aufklappbare Navigation schreiben.

    Die Navigation ist in verschiedene Bereiche unterteilt, die auf und zu geklappbar sein sollen.
    Der Html Teil sieht zur Zeit so aus:

    PHP-Code:
    <div  id="label" class="clearfix boxes">
     <
    h2  onclick="toggle(this);">Label:</h2>
       <
    ul>
        <
    li><a href="#">Azul de Corso</a></li>
        <
    li><a href="#">DOMA</a></li>
      </
    ul>
    </
    div
    das div grenzt die einzelnen Bereiche von einander ab, die h2 soll immer sichtbar sein und die ul soll mit display block / none jeweils angezeigt / nicht angezeigt werden.

    Ich könnte jetzt ja jeder ul eine ID geben, diese in der function toggle('unique_id') in der Headline übergeben, den Zustand des Objektes prüfen (block / none) und entsprechend ändern.
    Fände es aber schicker mit Toggle einen Zeiger auf die Headline zu übergeben, und dann mit "nextSibling" den unmittelbar nächstfolgenden Knoten im Strukturbaum, ergo die ul, ansprechen zu können.
    PHP-Code:
    function toggle(obj){
        
    alert(obj.nextSibling);

    liefert mir aber nur den Typ (ist eine ul), aber keinen Zeiger auf die ul.
    Meine Frage(n):
    - geht das überhaupt so wie gedacht, oder mache ich einen grundsätzlichen Denkfehler?
    - wenn ja, kennt einer Links oder ein Tutorial dazu (ausser Selfhtml)?
    "I don't want to belong to any club that would accept me as a member."

    Groucho Marx

  • #2
    Re: Frage zu DOM

    Original geschrieben von mcmurphy
    liefert mir aber nur den Typ (ist eine ul), aber keinen Zeiger auf die ul.
    Wenn du die Referenz auf ein HTML-Element vorliegen hast, und diese mit alert ausgeben willst, wird die toString-Methode des jeweiligen Nodeelements aufgerufen, um dir irgendwas halbwegs sinnvolles anzeigen zu können.

    nextSibling liefert dir aber immer eine Knotenreferenz zurück - ausser wenn es keinen solche gibt, dann NULL.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      mit alert(); wollte ich nur eine Kontrollausgabe machen.

      dann wäre:
      function toggle(obj){
      target = obj.nextSibling;
      target.style.backgroundColor = "red";
      }
      korrekt?
      Und wenn nicht, haste nen Link wo ich die richtige Syntax nachlesen kann?
      "I don't want to belong to any club that would accept me as a member."

      Groucho Marx

      Kommentar


      • #4
        Schaut korrekt aus, ja.

        Und bzgl. Links - wenn dir SELFHTML nicht zusagt, darfst du's auch gerne in der Javascript-Doku der Mozilla Foundation versuchen, oder dich durch die diversen DOM-Specs auf http://www.w3.org/TR/ durcharbeiten :-)
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          wenn dir SELFHTML nicht zusagt,
          ich LIEBE selfhtml ,hatte mich dort auch in das Thema eingelesen, aber mein Script läuft (noch) nicht und wollte deshalb noch eine andere Quelle (gerne auch in deutsch ) querlesen, damit ich's kapiere ...

          THX Wahsaga für deine Antwort(en)
          "I don't want to belong to any club that would accept me as a member."

          Groucho Marx

          Kommentar

          Lädt...
          X