getElementsByTagName()。length返回零 [英] getElementsByTagName().length returns zero

查看:334
本文介绍了getElementsByTagName()。length返回零的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试做一个简单的事情,例如:

I am trying to do a simple thing such as:

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

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

The console.log(elements) shows the NodeList containing 28 input elements, but the elements.length is always 0.

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

I've also seen this getElementsByTagName("div").length returns zero for any webpage however I didn't understand what exactly is the reason for it happening and how to fix it. I've also noticed that this happens on both Firefox, IE, Chrome.

任何人都可以帮助我吗?

Anyone could help me out?

推荐答案

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

NodeList is a live collection and non-deferred scripts execute immediately (see script defer).

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

Try this and you will get an idea of what happens:

<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>

这篇关于getElementsByTagName()。length返回零的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆