该元素确实以子节点(两个文本节点和一个注解节点)开始,只是没有 element 子节点。 如果想知道它是否有任何 element 子元素,可以使用firstElementChild,如果该元素没有任何子元素,则为null,如果有,则为第一个子元素。
const x = document.querySelector(".parent");
console.log(`Before: ${!!x.firstElementChild}`);
// Emulate replacing the comment node with an element node
const div = document.createElement("div");
div.className = "child";
x.replaceChild(div, x.childNodes[1]);
console.log(`After: ${!!x.firstElementChild}`);
3条答案
按热度按时间xmjla07d1#
el.hasChildNodes-这可以完成这项工作,但它也会计算非元素节点。
el.children-仅包括元素节点。
3pvhb19x2#
该元素确实以子节点(两个文本节点和一个注解节点)开始,只是没有 element 子节点。
如果想知道它是否有任何 element 子元素,可以使用
firstElementChild
,如果该元素没有任何子元素,则为null
,如果有,则为第一个子元素。gudnpqoy3#
可以使用“hasChildNodes()”方法检查子节点:
https://developer.mozilla.org/en-US/docs/Web/API/Node/hasChildNodes