bastold: Javascript: Nachfolgerelement ansprechen

Hi!

Gibt es eine Möglichkeit, das Nachfolgerobjekt im DOM anzusprechen?

Bsp

  
...  
<div ID="div1"></div>  
<img ID="image1" src="...">  

Ich möchte nun, ausgehend vom 'div1'-Element an eine JS-Funktion die ID des Nachfolgerelements übergeben, ohne dass ich wissen muss, wie dieses heisst.

Hintergrund ist, ich möchte im 'div1' eine Schaltfläche anbieten, die beim Klick auf diese, das Nachfolgerelement sichtbar macht (document.getElementById([nachfolgerID]).style.display='block').

Da ich diese Funktion in meiner Seite oft brauche, möchte ich das Umschalten in eine function auslagern und die ID des Nachfolgerelements variabel übergeben, in meiner Idealvorstellung mit this.follower.

Geht das?

    1. http://de.selfhtml.org/javascript/objekte/node.htm

      nextSibling?

      Im gegebenen Beispiel sollte nextSibling aber ein Text-Knoten sein (der Umbruch).

      1. Hmmm, erst mal danke. Ja, das ist wohl das,  was ich brauche.

        Komme jetzt im Speziellen aber nicth zum Ziel
        this.parentNode.nextSibling.id
        liefert mit ein "undefined" zurück.

        Das "parentNode", weil im "div1" noch ein Bild liegt, welches ich anklicke.
        this.parentNode.id liefert mit die korrekte ID zurück, naemlich "div1".

        Bin ich denkmässig irgendwo auf dem Holzweg?

        Danke

        1. Yerf!

          Bin ich denkmässig irgendwo auf dem Holzweg?

          Du hast nur suits Hinweis übersehen, das der nächste Sibling der Textknoten mit dem Umbruch ist. Benutze am besten eine Schleife und nimm solange den nächsten Sibling bis du einen Element-Knoten hast.

          Gruß,

          Harlequin

          --
          RIP --- XHTML 2
          nur die Besten sterben jung
          1. Textknoten mit dem Umbruch ist. Benutze am besten eine Schleife und nimm solange den nächsten Sibling bis du einen Element-Knoten hast.

            Alles klar, probier ich :)

            Danke

          2. [latex]Mae  govannen![/latex]

            Du hast nur suits Hinweis übersehen, das der nächste Sibling der Textknoten mit dem Umbruch ist. Benutze am besten eine Schleife und nimm solange den nächsten Sibling bis du einen Element-Knoten hast.

            Ergänzend: In der Schleife den jeweiligen Typ mit nodeType abfragen.

            Stur lächeln und winken, Männer!
            Kai

            --
            Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
            in Richtung "Mess up the Web".(suit)
            SelfHTML-Forum-Stylesheet
            1. Ergänzend: In der Schleife den jeweiligen Typ mit nodeType abfragen.

              Die Abfrage selbst aber nicht mit einer If-Schleife :p

  1. Hallo,

    Gibt es eine Möglichkeit, das Nachfolgerobjekt im DOM anzusprechen?

    Am einfachsten geht es über die neuere Eigenschaft nextElementSibling. Wenn der Browser diese noch nicht kennt, muss man mit nextSibling vorankriechen.

    function getNextElementSibling (el) {  
      if (el.nextElementSibling) {  
        return el.nextElementSibling;  
      } else {  
        var sibling = el;  
        while (sibling = sibling.nextSibling) {  
          if (sibling.nodeType == 1) {  
            return sibling;  
          }  
        }  
      }  
      return null;  
    }
    

    (ungetestet)

    Siehe
    http://www.w3.org/TR/ElementTraversal/#attribute-nextElementSibling
    http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-element-nextelementsibling

    Mathias

    1. vielen dank an alle, problem ist mit eurer hilfe zur zufriedenstellung gelöst. *freu*