getElementsByTagName().length返回零

mob*_*ius 9 javascript getelementsbytagname

我想做一个简单的事情,如:

var elements = document.getElementsByTagName("input");
console.log(elements);
console.log(elements.length);
Run Code Online (Sandbox Code Playgroud)

console.log(elements)显示包含28个输入元素的NodeList,但elements.length始终为0.

我也看过这个getElementsByTagName("div").长度为任何网页返回零但是我不明白它究竟发生了什么原因以及如何解决它.我也注意到这种情况发生在Firefox,IE,Chrome上.

有人可以帮帮我吗?

c-s*_*ile 8

NodeList 是一个实时集合,非延迟脚本立即执行(请参阅脚本延迟).

试试这个,你就会知道会发生什么:

<html>
<head>
  <title></title>
  <style></style>
  <script type="text/javascript">
    var elements = document.getElementsByTagName("div");
    alert(elements.length); 
  </script>
</head>
<body>
  <div>1</div>
  <script type="text/javascript">
    //var elements = document.getElementsByTagName("div");
    alert(elements.length); 
  </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)