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

两个div是怎么区分呢,为什么我显示的是div后的第一个字母

<div>
  <p>javascript</p>
  <div>jQuery</div>
  <h5>PHP</h5>
</div>
<script type="text/javascript">
 var x=document.getElementsByTagName("div")[0].childNodes;
 document.write("div子节点个数"+x.length+"<br />");
 document.write("节点类型:"+x[0].nodeType+"<br />");
 document.write("节点值:"+x[0].nodeValue+"<br />");
 for (i=0;i<=x.length;i++)
 {
     var s=document.getElementsByTagName("div")[i].childNodes;
 document.write("div子节点个数"+x.length+"<br />");
 document.write("节点类型:"+x[i].nodeType+"<br />");
 document.write("节点值型:"+x[i].nodeValue+"<br />");
 }
 

提问者:拉斐罗 2016-09-08 15:34

个回答

  • 慕粉3284187
    2016-09-09 10:46:00
    已采纳

    document.write("节点类型:"+x[0].nodeType+"<br />");
     document.write("节点值:"+x[0].nodeValue+"<br />");

    你的这两句代码是第一个子节点的类型和第一个子节点的值;第一个div的第一个子节点是#text即javascript

  • GavinZeng
    2016-09-08 17:34:18

     我猜你想要输出的是:

    <p>javascript</p>
    <div>jQuery</div>
    <h5>PHP</h5>

    这些子节点的信息,那么这一句:

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

    是多余的

  • 林x盖0
    2016-09-08 16:44:44

    当你根据TagName获取节点时后面有个坐标[0]就表示第一个div,[1]表示第二个div

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

  • qq_小土三寸_03831692
    2016-09-08 16:23:13

    不明白意思,支持一下