2012-03-24 47 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

相關問題