JavaScript操作DOM元素的childNodes和children区别
2015-04-02来源:易贤网

对于DOM元素,children是指DOM Object类型的子对象,不包括tag之间隐形存在的TextNode,而childNodes包括tag之间隐形存在的TextNode对象。

具体看一下针对children和childNodes在chrome环境下的测试:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<div id="div1" class="div">

<span id="s1" class="sp" lang="zh-cn">

</span>

</div>

</body>

<script type="text/javascript">

function test() {

var o = document.getElementById("div1");

var child = o.children;

console.log("div1.children运行结果:");

for(i = 0; i < child.length; i++){

console.log(child[i].tagName);

}

console.log("");

child = o.childNodes;

console.log("div1.childNodes运行结果:");

for(i = 0; i < child.length; i++){

console.log(child[i].tagName);

}

}

test();

</script>

</html>

测试结果如下:

div1.children运行结果:

SPAN

div1.childNodes运行结果:

undefined

SPAN

undefined

上面childNodes集合的结果中有两个undefined节点,这连个就是nodeType=3的TextNode。

如果把HTML代码写成如下样式,那么children和childNodes的结果就没有差别了。

<body>

<div id="div1" class="div"><span id="s1" class="sp" lang="zh-cn"></span></div>

</body>

对document、head、body及div等HTML元素实测未发现有其他差异

更多信息请查看IT技术专栏

2025公考·省考培训课程试听预约报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
推荐信息