childNodes返回的是节点的子节点集合,包括元素节点、文本节点还有属性节点。
childNodes 属性,标准的,它返回指定元素的子元素集合,包括HTML节点,所有属性,文本。
语法:
element.childNodes
返回值:NodeList 对象,表示节点集合。
说明:元素中的空格被视为文本,而文本被视为节点。
示例:获得 body 元素的子节点集合:
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
</head>
<body>
<p id="demo">请点击按钮来获得 body 元素子节点的相关信息。</p>
<button onclick="myFunction()">试一下</button>
<script>
function myFunction() {
var txt = "";
var c = document.body.childNodes;
for(i = 0; i < c.length; i++) {
txt = txt + c[i].nodeName + "<br>";
};
var x = document.getElementById("demo");
x.innerHTML = txt;
}
</script>
</body>
</html>我们可以通过nodeType来判断是哪种类型的节点,只有当nodeType==1时才是元素节点,2是属性节点,3是文本节点。
有时候需要获取指定元素的第一个HTML子节点(非属性/文本节点),最容易想到的就是firstChild 属性。代码中第一个HTML节点前如果有换行,空格,那么firstChild返回的就不是你想要的了。可以使用nodeType来判断下。
function getFirst(elem){
for(var i=0,e;e=elem.childNodes[i++];){
if(e.nodeType==1)
return e;
}
}兼容性:基本兼容主流浏览器。








网友评论文明上网理性发言 已有0人参与
发表评论: