Javascript принимает путь в getElementsByTagName
Я искал ответ на этот вопрос: должен ли работать следующий фрагмент?
getElementsByTagName("parent/child/grand-child");
Для такой структуры:
<parent>
<child>
<grand-child></grand-child>
</child>
</parent>
Моя конкретная проблема заключается в том, что она работает в среде разработки, и один раз в процессе производства нет, и я получаю сообщение "Это имя не может содержать символ"/".
Если getElementsByTagName должен работать с таким путем, мне нужны идеи о возможной причине этой проблемы.
Нет, getElementsByTagName
принимает только имя тега.
Но вы можете использовать querySelector
и querySelectorAll
с селектором CSS:
var element = document.querySelector("parent child grand-child");
или
var elements = document.querySelectorAll("parent > child > grand-child");
Нет. getElementsByTagName
получает элементы по имени тега, а не по их пути. Используйте XPath для путей: document.evaluate
(IE, опять же, делает это по-другому) или используйте селектор CSS с document.querySelector
и document.querySelectorAll
.
Вы всегда можете использовать jQuery для итерации через дочерние элементы элемента с помощью селектора.
var elem = $( "parent > child > grand-child" );