怎样判断当前节点是否有子节点

使用: Node.prototype.hasChildNodes()

如果有子节点则返回 true, 反之 false.

var a = document.getElementById("id1");
// undefined
a.hasChildNodes();
// true

注意, 节点操作都得考虑七种节点类型, 就算把body里面的所有html标签移出, body也还是有子节点, 这些子节点大多数都是换行符, 因为html标签之间的换行符也是一种节点类型: 文本节点

此外还有下面两种方法: 

node.firstChild !== null
node.childNodes && node.childNodes.length > 0