getElementsByClassName返回重复的元素

时间:2016-02-22 15:12:16

标签: javascript arrays getelementsbyclassname

寻找更多解释而不是解决问题。我从以下地址返回4项:

var inputFields = document.getElementsByClassName("calc-input-url");

但是当我将数组记录为输出时,我得到了这个:

[
    input#tippedEmployees.form-control.calc-input-url,
    input#hourlyWage.form-control.calc-input-url, 
    input#weeklyTips.form-control.calc-input-url, 
    input#hoursTippedEmp.form-control.calc-input-url, 
    tippedEmployees: input#tippedEmployees.form-control.calc-input-url,
    hourlyWage: input#hourlyWage.form-control.calc-input-url, 
    weeklyTips: input#weeklyTips.form-control.calc-input-url, 
    hoursTippedEmp: input#hoursTippedEmp.form-control.calc-input-url, 
    item: function…
]

然后我记录了数组的长度以进行仔细检查,只返回值为4.

阵列中的这些额外元素来自哪里,为什么它们在那里/如何使用它们(如果有的话)?

1 个答案:

答案 0 :(得分:1)

您看到的不是常规数组,而是HTMLCollection。阵列"有键和#34; (tippedEmployees:)应该是赠品,这不是普通的数组。 HTMLCollection以类似数组的方式公开元素,但也直接通过它们的ID公开。这对您来说很方便。

在实践中应该没有问题,因为你要么要迭代&#34;数组部分&#34;它使用for (var i = 0; i < list.length; i++) list[i]...来直接通过ID访问元素。