Есть задание:
Функция должна перебрать все дочерние элементы элемента where
и вернуть массив, состоящий из тех дочерних элементов
следующим соседом которых является элемент с тегом P
. Рекурсия - по желанию
@param {Element} where - где искать
@return {Array<Element>}
Пример для html
<div></div><p></p><a></a><span></span><p></p>
функция должна вернуть: [div, span]
, т.к. следующим соседом этих элементов является элемент с тегом P
Вот мой код:
function findAllPSiblings(where) {
var children = where.children
var arr = [];
for (var i = 0; i < children.length; i++) {
if (children[i].nextElementSibling.nodeName = 'P') {
arr.push(children[i])
}
}
return arr;
}
Однако, при вызове функции findAllPSiblings(body)
консоль (Firefox) выдает ошибку:
TypeError: children[i].nextElementSibling
is null
; can't access its "nodeName
" property
В Google то же самое. Что делать? Почему не работает?
Вам же текст ошибки явно говорит, почему не работает.
children[i].nextElementSibling is null; can't access its "nodeName" property
children[i].nextElementSibling
имеет значение null
и вы не можете обратиться к свойству nodeName
.
Возникает же эта ошибка не последней итерации по массиву дочерних элементов. Когда i
равно children.length - 1
. На данной итерации элемент является последним и он заведомо не имеет nextElementSibling
, отсюда и появляется это null
значение и последующая ошибка обращения к свойству.
Используйте цикл до < children.length - 1
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Помогите пожалуйста понять почему в шаблоне срабатывает счётчик приходящих в дочерний компонент переменных?
Допустим есть такая таблица __test_if_else