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

如果页面中有两个相同名字的标签,例如div,childNodes这个属性如何使用?页面只能读取第一个div的,第二个div的无法读取。

<!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>

<div>

  123

  <p>123</p> 

  <div>123</div> 

  <h5>123</h5>

</div>

<script type="text/javascript">

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

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

     document.write(x[i].nodeName+"<br/>");

     document.write(x[i].nodeValue+"<br/>");

     document.write(x[i].nodeType+"<br/>"+"<br/>");

     }

 document.write(x.length);

 

</script>

</body>

</html>



提问者:传说中的小白龙 2016-04-11 19:31

个回答

  • qq电子时代
    2016-04-24 16:13:52
    已采纳

    var x = document.getElementsByTagName("div")[0].childNodes;//代码中的内容

    分开写是这样的:

    var y=document.getElementsByTagName("div");   //这里返回的是数组

     var x=y[0].childNodes;    

    你可以看见代码中有两个div标签,而y[0-]就是取数组中第一个元素,也就是第一个div标签


  • 传说中的小白龙
    2016-04-11 19:36:08

    原来是加了下标[0],没有注意。看来childNodes这个属性只能针对单独的父标签使用。