getElementsByTagName()。length返回零 [英] getElementsByTagName().length returns zero
问题描述
我正在尝试做一个简单的事情,例如:
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屋!