问答详情
源自:9-8 访问子节点childNodes

请问各位大神:为什么下面这段代码中的第一个<div>会有7个子节点呢?不应该是“文本:javascript”、“元素p”、“元素div”、“元素h5”这4个子节点吗?

<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 node=document.getElementsByTagName("div")[0].childNodes;

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

 for (var i=0;i<huoqu.length;i++)

     {document.write("第"+(i+1)+"个子节点的名称:"+huoqu[i].nodeName+"<br/>");

      document.write("第"+(i+1)+"个子节点的值:"+huoqu[i].nodeValue+"<br/>");

      document.write("第"+(i+1)+"个子节点的类型:"+huoqu[i].nodeType+"<br/><br/><br/>");

     }

</script>

</body>

</html>



提问者:子玲儿 2017-04-03 16:56

个回答

  • 落叶1111
    2017-04-03 18:21:57
    已采纳

    看你用的什么浏览器。childNode 在 ie 和 firefox 中有着不同的处理方式,ie 只会把 html 标签算作孩子结点,而 firefox 除了把 html 标签算作孩子结点外,还会把“文字、空格、换行符和制表”算作孩子结点,三个元素标签,加四个换行,刚好七个

  • 慕移动9181930
    2022-03-25 21:34:57

    没有啊,我这头试了一下,是跳到8-3了啊。。。怎么回事呢,你用的是什么浏览器?西

  • Daniel大牛D
    2017-06-25 02:32:20

    <div


      javascript 

      <p>javascript</p>

      <div>jQuery</div>

      <h5>PHP</h5>

    </div>

    <script type="text/javascript">

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

     document.write("Number of nodes:"+ node.length + "<br/>")

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

         document.write("Node type:"+ node[i].nodeType + "<br/>")

         document.write("Node type:"+ node[i].nodeValue + "<br/>")

     }