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