JavaScript hasChildNodes() — чи має вузол нащадків


Метод hasChildNodes() перевіряє, чи є в елемента хоч якісь дочірні вузли.

автор: NagarD

Загальний опис

І тут — та сама пастка, що й з childNodes: пробіли й переноси рядків теж вузли. Порожній на вигляд елемент, записаний у розмітці в кілька рядків, має текстовий вузол усередині — і метод чесно поверне true.

Тому для перевірки «чи є всередині теґи» надійніше дивитись на children.length — воно рахує лише елементи.

автор: NagarD

Нотатка

Метод поверне true навіть для <div>\n</div> — усередині там перенос рядка, а це текстовий вузол.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
hasChildNodes 1+ 1+ 1+ 7+ 12+ 9+
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
hasChildNodes yes yes yes yes

Приклади

+ запропонувати свій приклад у пісочниці

Порожній на вигляд елемент, який насправді не порожній.

HTML

<div id="a"></div>
<div id="b">
</div>

JS

const a = document.getElementById('a');
const b = document.getElementById('b');

console.log(a.hasChildNodes()); // false
console.log(b.hasChildNodes()); // true (!) — там перенос рядка

// надійніше — рахувати саме елементи
console.log(b.children.length); // 0 — теґів немає
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід