Was wäre die effizienteste Methode, um ein untergeordnetes Element (mit Klasse oder ID) eines bestimmten übergeordneten Elements nur mit reinem Javascript zu finden. Keine jQuery oder andere Frameworks.
In diesem Fall müsste ich child1 oder child2 des Elternteils finden , vorausgesetzt, der DOM-Baum könnte mehrere child1- oder child2- Klassenelemente im Baum enthalten. Ich möchte nur die Elemente der Eltern
<div class="parent">
<div class="child1">
<div class="child2">
</div>
</div>
</div>
javascript
dom
Blyde
quelle
quelle
document.getElementById('element-id')
.Antworten:
Die
children
Eigenschaft gibt ein Array von Elementen zurück, wie folgt:Es gibt Alternativen zu
querySelector
,document.getElementsByClassName('parent')[0]
wenn Sie dies wünschen.Bearbeiten: Jetzt, wo ich darüber nachdenke, könnten Sie nur verwenden
querySelectorAll
, um Nachkommenparent
eines Klassennamens vonchild1
:Der Unterschied zwischen qS und qSA besteht darin, dass das letztere alle Elemente zurückgibt, die mit dem Selektor übereinstimmen, während das erstere nur das erste derartige Element zurückgibt.
quelle
Wenn Sie dies bereits
var parent = document.querySelector('.parent');
getan haben , können Sie dies tun, um die Suche aufparent
die Kinder zu beschränken:quelle
parent.querySelectorAll('.child')
eine NodeListWenn Sie nur eine weitere Idee hinzufügen, können Sie eine Kinderauswahl verwenden, um sofort Kinder zu bekommen
sollte alle unmittelbaren Kinder mit der Klasse .child1 zurückgeben
quelle
Wenn Sie ein übergeordnetes Element haben, möchten Sie alle untergeordneten Elemente eines bestimmten Attributs abrufen. 1. Abrufen des übergeordneten Knotens 2. Abrufen des übergeordneten Knotennamens durch
parent.nodeName.toLowerCase()
Konvertieren des Knotennamens in Kleinbuchstaben, z. B. DIV ist div der Elternteil zBparent.getAttribute("id")
. Dies gibt Ihnenid
den übergeordneten 4. Dann verwendendocument.QuerySelectorAll(paret.nodeName.toLowerCase()+"#"_parent.getAttribute("id")+" input " );
Sie, wenn Sie untergeordnete Knoten des übergeordneten Knotens eingeben möchtenquelle