Я пишу сценарий GreaseMonkey, который проходит через страницу с различными элементами, и каждый элемент имеет текст и кнопку. Он использует document.getElementsByClassName
для поиска родительских элементов и имеет цикл for, чтобы что-то сделать для каждого родительского элемента. В этом цикле мне нужно выбрать дочерний узел с определенным классом и найти его текстовое значение (innerHTML
). Я не могу понять, как выбрать ребенка с определенным классом этого элемента.JS выбрать дочерний элемент этого класса с определенным классом
ответ
Вы хотите, чтобы захватить текущий итерированный элемент и использовать querySelector()
Например:
var elements = document.getElementsByClassName('class');
for (var i = 0, len = elements.length; i < len; i++) {
var child = elements[i].querySelector('.class_of_desired_element');
//do stuff with child
}
Примечания точки перед именем класса в querySelector
как это работает подобно jQuery.
Обратите внимание, что использование querySelector() вместо querySelectorAll() будет выбирать только первый элемент, который соответствует, а не все совпадения. – ryanbrill
Вы можете использовать
var yourelement = document.getElementsByClass("");
var i = yourelement.nextSibling;
var e = i.nextSibling;
и продолжать получать nextSibling
элемента, пока вы его получите.
Однако, как @teddy сказал в комментариях, я бы предложил вам использовать jQuery. Он имеет гораздо более простой способ сделать это:
var value = $('.parentClass .childClass').html();
Try querySelectorAll()
, который можно использовать для поиска элементов в пределах текущего элемента.
var parent = document.getElementsByClassName('parentClass'),
parent[0].querySelectorAll('.childClass');
В зависимости от того, что вы хотите сделать, вы также можете пропустить выбор родителя, если вы явно не нужна ссылка на него.
document.querySelectorAll('.parentClass .childClass');
https://developer.mozilla.org/en-US/docs/Web/API/Element.querySelectorAll
- 1. выберите дочерний элемент селектора с определенным классом
- 2. Выберите первый дочерний элемент с определенным классом
- 3. Как выбрать второй элемент с определенным классом?
- 4. Как выбрать первый элемент с определенным классом
- 5. Как выбрать только n-й дочерний элемент класса в JS?
- 6. d3 выбрать что-нибудь с определенным классом
- 7. Как выбрать дочерний элемент элемента с определенным свойством
- 8. Как выбрать только узлы с определенным классом CSS? D3/JS
- 9. Jquery выбрать предыдущий элемент с классом
- 10. Как выбрать родительский элемент с определенным классом в jQuery?
- 11. Как выбрать в каждой строке последний элемент с определенным классом?
- 12. Выберите последний дочерний элемент с определенным элементом
- 13. jQuery Селекторы - где элемент не имеет дочерний элемент с определенным классом
- 14. Добавление класса к элементу с определенным классом
- 15. Невозможно выбрать дочерний элемент-
- 16. Выбрать список элементов, имеющих дочерний элемент без определенного класса
- 17. xpath исключает некоторый дочерний элемент с классом
- 18. Как определить, имеет ли div определенный элемент с определенным классом?
- 19. target последний элемент с определенным классом
- 20. Найти элемент previoius с определенным классом
- 21. Действительно следующий элемент с определенным классом
- 22. Как вызвать функцию js при зависании элемента с определенным классом?
- 23. Выбрать элемент на основе дочернего класса
- 24. Как открыть браузер класса с определенным классом?
- 25. Элемент Jquery get, содержащий дочерний элемент с определенным значением html
- 26. Выбор первого элемента с определенным классом?
- 27. выберите дочерний элемент с помощью родительского класса
- 28. Как выбрать последний элемент с определенным именем класса?
- 29. JQuery - удалить дочерний класс элементов с определенным классом
- 30. Добавить дочерний элемент в родительский элемент, когда у родителя есть другой дочерний элемент с определенным атрибутом с определенным значением
Можете ли вы использовать идентификатор? – tjons
Нет, дочерний элемент, который я выбираю, имеет класс. – Keavon
Почему бы не использовать jQuery, все может быть легко: var value = $ ('. ParentClass .childClass'). Html(); – Teddy