Каков наиболее эффективный способ найти дочерний элемент (с классом или идентификатором) определенного родительского элемента, используя только чистый javascript. Нет jQuery или других платформ.
В этом случае мне нужно будет найти child1 или child2 родительского элемента , предполагая, что дерево DOM может иметь несколько элементов класса child1 или child2 в дереве. Я хочу только элементы родителя
<div class="parent">
<div class="child1">
<div class="child2">
</div>
</div>
</div>
javascript
dom
Blyde
источник
источник
document.getElementById('element-id')
.Ответы:
children
Свойство возвращает массив элементов, например так:Есть альтернативы
querySelector
, например,document.getElementsByClassName('parent')[0]
если вы этого хотите.Изменить: Теперь, когда я думаю об этом, вы можете просто использовать,
querySelectorAll
чтобы получить потомкиparent
с именем классаchild1
:Разница между qS и qSA заключается в том, что последний возвращает все элементы, соответствующие селектору, тогда как первый возвращает только первый такой элемент.
источник
Если у вас уже есть,
var parent = document.querySelector('.parent');
вы можете сделать это, чтобы охватить поиск дляparent
детей:источник
parent.querySelectorAll('.child')
можете вернуть NodeListПросто добавив еще одну идею, вы можете использовать дочерний селектор, чтобы получить непосредственных детей
должен вернуть всех ближайших детей с классом .child1
источник
У вас есть родительский элемент, вы хотите получить все дочерние элементы определенного атрибута 1. получить родительский 2. получить родительское имя узла с помощью
parent.nodeName.toLowerCase()
преобразования имени узла в нижний регистр, например, DIV будет div 3. для дальнейшей конкретной цели, получить атрибут родительская напримерparent.getAttribute("id")
. это даст вамid
родительский 4. Затем используйте,document.QuerySelectorAll(paret.nodeName.toLowerCase()+"#"_parent.getAttribute("id")+" input " );
если вы хотите, чтобы входные дочерние элементы родительского узлаисточник