2017-02-11 147 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); 
}