JavaScript hasChildNodes() — чи має вузол нащадків
Метод hasChildNodes() перевіряє, чи є в елемента хоч якісь дочірні вузли.
Загальний опис
І тут — та сама пастка, що й з childNodes: пробіли й переноси рядків теж вузли. Порожній на вигляд елемент, записаний у розмітці в кілька рядків, має текстовий вузол усередині — і метод чесно поверне true.
Тому для перевірки «чи є всередині теґи» надійніше дивитись на children.length — воно рахує лише елементи.
- Нотатка
-
Метод поверне
автор: NagarDtrueнавіть для<div>\n</div>— усередині там перенос рядка, а це текстовий вузол.
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| hasChildNodes | 1+ | 1+ | 1+ | 7+ | 12+ | 9+ |
| Переглядач | ||||
|---|---|---|---|---|
| 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 — теґів немає
Коментарі
Коментарів ще немає — будьте першим!