我需要确保,如果页面中的所有选择选项(具有相同的类)都有value = 1
,则必须隐藏价格。我创建了这段代码:
var variazione = document.getElementsByClassName("select-addition");
var base = 0;
var lunghezza = 0;
for (var i = 0; i <= variazione.length; i++) {
if (variazione[i].selectedIndex == "1") {
base = base + 1;
}
lunghezza = lunghezza + 1;
}
if (base == lunghezza)
document.getElementById("info-add-on").style.display = "none";
else
document.getElementById("info-add-on").style.display = "block";
但控制台返回:无法读取未定义的属性selectedIndex
。但如果我手动指定 I 的值,它就可以工作(例如使用 variazione[1])。
最佳答案
我在这里看到的问题是在 for
中您正在迭代的循环直到 i <= length
而不是做i < length
。请记住,从 0 开始索引,元素的范围为 [0, ..., n-1]。
通过使用 less-equal 不等式运算符,您的代码将始终比使用 getElementByClassName
找到的元素数量多访问一个元素。因此,您将访问不存在(未定义)变量的某些属性,从而产生错误。
关于javascript - getElementsByClassName 在 for 中选择和使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60603131/