getNextNode / Kindelemente rekursiv besuchen

aceman

Grünschnabel
Hallo,
ich möchte gerne ausgehend vom aktuell geklickten Object das nächste Objekt eines bestimmten Typs finden. Dazu habe ich folgende tolle Funktion, die auch super funktioniert:
HTML:
<input type="button" onclick="getNextNode(this,'img');" value="Bild holen"/>
<img src="language/en/images/logo-trans.png" />
Code:
function getNextNode(o,typeOfNode){
    o=o.nextSibling;
    while (o && o.nodeName.toLowerCase() != typeOfNode.toLowerCase()) {
        o=o.nextSibling;
    }
    if (o) {
        return o;
    }
    else return "";
}

befindet sich mein img aber in einem span oder div
HTML:
<input type="button" onclick="getNextNode(this,\'img\');" value="Bild holen"/>
<span><img src="language/en/images/logo-trans.png" /></span>
klappts natürlich nicht, da es ja ein childNode ist.
Wie durchlaufe ich mit meiner Funktion also die Kindelemente falls es welche gibt?
 
Andere Herangehensweise:

Bei getElementsByTagName() kannst du "*" als Wildcard angeben.... somit kannst du alle Elementknoten durchlaufen.

Tu dies solange, bis du bei "o" angekommen bist.
Wenn du "o" passiert hast, frage den tagName der nächsten Knoten ab... stimmt er mit typeOfNode überein, bist du beim Objekt der Begierde angekommen.
Wie tief das Element in der Knotenstruktur eingebunden ist, spielt dabei keine Rolle mehr:)
 

Neue Beiträge

Zurück