[已解决]JavaScript中DOM1 API的一个疑问?

为什么获取ul子节点的个数为3,包含li节点及前后的空白字符;而获取document的子节点个数为2(包含一个文档声明节点、一个html节点),没包含空白字符,为什么一套API而表现不一致呢???

<!DOCTYPE html>  
<html lang="en">  
<head>  
 <meta charset="UTF-8">  
 <title>Title</title>  
</head>  
<body>  
 <ul id="ul_id">  
    <li></li> 
 </ul> 
 <script type="text/javascript">  
        console.info(document.getElementById('ul_id').childNodes.length)  // 3
        console.info(document.childNodes.length) // 2 
    </script>  
</body>  
</html>
阅读 2k
3 个回答

文档规定就是这样

Node.childNodes

滑到下面备注部分:

document 节点(文档节点)包含两个子节点: Doctype 声明和根节点。

豆芽图片20200108170600.png

不是所有的空白节点都会变成Text节点

因为换行符.

<ul id="ul_id"><li></li></ul>

这样取出来就只有一个子节点.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题