DOM (JavaScript): Wie erhalte ich das Elternelement eines Elements, wenn der Elternteil Geschwister hat

8

Bitte schauen Sie sich dieses HTML-Codebeispiel an:

%Vor%

Wie Sie sehen können, hat das img-Tag zwei einschließende divs. Ich möchte, dass das erste dieser zwei einschließenden divs als das "echte" Elternteil (das ich finden muss) des img-Tags betrachtet wird, weil es einen Bruder div vor hat, sodass die Suche endet und der Bruder div und das äußere einschließende div sind ignoriert.
Ich möchte nur wissen, wie man den Vater eines Elements bekommt, wie ich es mit JavaScript-Code erklärt habe.
Hinweis: Für den Fall, dass keine Geschwister vorhanden sind, muss das äußere div angegeben werden. Wenn das Element nicht eingeschlossen ist, muss das Element selbst zurückgegeben werden.

    
P5music 12.10.2012, 17:37
quelle

3 Antworten

15

Es klingt also so, als ob Sie den ersten Vorfahren haben wollen, der Geschwisterelemente hat. Wenn ja, kannst du es so machen:

%Vor%

Oder vielleicht besser als do-while loop geschrieben:

%Vor%

Also wird die Schleife enden, wenn sie eine mit mindestens einem Geschwisterelement findet oder wenn sie keine Vorfahren mehr hat.

Wenn Sie wissen, ob das Geschwister vor oder nach dem Elternteil kommt, können Sie einfach nach dem einen oder dem anderen suchen.

Beachten Sie auch, dass Sie eine Unterlegscheibe für die ***ElementSibling -Eigenschaften benötigen, wenn Sie ältere Browser unterstützen.

Sie können eine Funktion erstellen, die dies tut:

%Vor%

Dann benutze die Funktionen wie folgt:

%Vor%     
I Hate Lazy 12.10.2012, 17:52
quelle
0

Wenn Sie nicht wissen, wie viele Ebenen das übergeordnete Element ist, wird es schwierig sein, es mit Methoden wie element.getParent allein auszuwählen. Sie können jedoch über Elternknoten iterieren, bis der Knoten, den Sie betrachten, Geschwister aufweist und das untergeordnete Element eines body -Elements ist. Angenommen, Ihr img -Tag wird mit imgNode bezeichnet.

%Vor%

Im obigen Code durchlaufen wir schrittweise die Eltern des Bildknotens. Bei jeder Iteration prüfen wir, ob der aktuelle Knoten (ein Elternteil des Knotens img ) ein Geschwister hat und das Kind eines body -Tags ist.

    
Grayson 12.10.2012 18:04
quelle
0

Falls Sie neugierig sind, können Sie hier die Empfehlung von user1689607 mit jQuery .

%Vor%

Ob es sinnvoll ist, diese Bibliothek für Ihre Zwecke zu verwenden, hängt von vielen Kontexten ab, die wir nicht haben. Wie andere zu Recht angemerkt haben, brauchen Sie jQuery nicht, um dieses Problem zu lösen, und es könnte eine unnötig schwergewichtige Lösung sein. Allerdings kann es eine sehr nützliche Bibliothek sein und ist sicherlich Ihre Überlegung wert, wenn Sie sich dessen nicht bewusst waren oder sich nicht bereits damit beschäftigt haben.

    
Dan Tao 12.10.2012 18:34
quelle

Tags und Links