2017-02-11 145 views
0

發現我寫了下面的HTMLHTML的輸入標籤不被的getElementsByTagName

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8"/> 
     <title>Test</title> 
     <script type = "text/javascript" src = 
     "../js/test.js"></script> 
    </head> 
    <body> 
     <p><input type = "button" value = "Click";></input></p> 
    </body> 
</html> 

和相應的JavaScript文件test.js

var inputs = document.getElementsByTagName("input"); 
console.log(inputs.length); 

和顯示的值是0。任何人都可以解釋一下嗎?

+3

您試圖在加載到dom之前獲取元素 –

+0

是整個JavaScript文件嗎? ''也是自動關閉的。 ''沒有必要。 – putvande

+0

@putvande我的理解 - 糾正我,如果我錯了 - 是,即使是自閉的標籤,這是很好的做法,在某種程度上它們關閉。喜歡它的最好編寫''
即使''
會工作。這正是我所聽到的。 – Addem

回答

1

您正在嘗試它加載到DOM之前,之後元件裝入移動腳本標籤的元素後或onload event handler中添加它來執行,以獲得元素。

window.onload = function(){ 
    var inputs = document.getElementsByTagName("input"); 
    console.log(inputs.length); 
}