为什么显示有7个节点 3个类型?

来源:9-8 访问子节点childNodes

觅己网

2016-10-21 14:24

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>无标题文档</title>

</head>

<body>

<div>

  javascript  

  <p>javascript</p>

  <div>jQuery</div>

  <h5>PHP</h5>

</div>

<script type="text/javascript">

    var div=document.getElementsByTagName("div")[0].childNodes;

    document.write("zijiediangeshu"+div.length+"<br />");

    document.write("jiedianleixing"+div[0].nodeType);

 

</script>

</body>

</html>


写回答 关注

3回答

  • 极爷3964486
    2016-10-21 15:18:27
    已采纳

    这是一个浏览器的兼容问题。标准浏览器会把空白部分以及文本节点(比如<p></p>后面空白部分)也作为子节点之一;所以标准浏览器有7个子节点,如果用IE浏览器IE6-8则只会有3个子节点。

    觅己网

    非常感谢!

    2016-10-26 16:19:44

    共 1 条回复 >

  • 刘毅毅
    2016-11-07 00:16:46

    为什么我谷歌浏览器显示7个节点其中4个正是作为4个文本节点的4段文本?即

     javascript  

      <p>javascript</p>

      <div>jQuery</div>

      <h5>PHP</h5>

    这样的话如果再加上空白节点的话岂不是11个节点了?


  • _Linl
    2016-10-24 16:42:28

    楼上正解,在本节课已经写出来了。

    2. 节点之间的空白符,在firefox、chrome、opera、safari浏览器是文本节点,所以IE是3,其它浏览器是7。

    如果你把里面换行都去掉,写成一行。 <div>javascript<p>javascript</p><div>jQuery</div><h5>PHP</h5></div> 就会只有4个节点

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题