2012-03-24 88 views
7

为什么以下返回0?元素内的getElementsByTagName javascript

<p id="g"> 
<div>kk</div> 
<div>ee</div> 
<div>jff</div> 
</p> 


    <script type="text/javascript"> 
    var ii = document.getElementById("g"); 
    var hh = ii.getElementsByTagName('div'); 
    document.write(hh.length); 
    </script> 

回答

12

因为你不能在一个<p><div>。段落只能有inline elements作为子女。

只要解析器遇到<div>,它就会自动关闭<p>

比较

<p id="g"> 
    <span>kk</span> 
    <div>ee</div> 
    <div>jff</div> 
</p> 

<script type="text/javascript"> 
    var ii = document.getElementById("g"); 
    var hh = ii.getElementsByTagName('span'); 
    alert(hh.length); 
</script>​ 
+1

哇,THX很多! – 2012-03-24 07:18:55

相关问题