我有一个带4个复选框的div.然后我运行以下javascript:
var elements = document.getElementById('myDiv').getElementsByTagName('input'); alert(elements.length); // output: 4 for (element in elements) { alert(element); } alert('finish!');
在4之后,我按顺序收到以下警报:
0 1 2 3 item namedItem length finish!
从0到3的数字是元素的索引.但是'item','namedItem'和'length'在这里意味着什么?
document.getElementById('myDiv').getElementsByTagName('input')
不返回真正的数组.这是一个array like
对象.所以函数喜欢forEach
和map
不存在.并for ... in ...
得到了一个奇怪的行为.
您可以将其转换为真正的数组slice
:
var elements = Array.prototype.slice.call(document.getElementById('myDiv').getElementsByTagName('input'));