我正在尝试重置页面上所有selectBox的值。有问题的事件发生在onClick中,因此所有内容都加载到DOM中。
我已经通过var selectBoxes = document.getElementsByClassName("selectBox");
获得了选择框的HTMLCollection我现在想要将每个selectBox的selectIndex更改为0。
但是,每当我尝试从HTMLCollection访问特定对象的属性时,我最终都会得到一个未定义的值。
selectBoxes.item(0).selectedIndex = undefined
selectBoxes [0] .selectedIndex = undefined
var selectBoxes = document.getElementsByClassName("filterBox");
console.log(selectBoxes); //a nice JavaScriptObject
for(i = 0; i < selectBoxes.length; i++){
selectBoxes.item(i).selectedIndex = 0;
}
这是关于HTMLCollections的一篇非常有趣的文章:https://hackernoon.com/htmlcollection-nodelist-and-array-of-objects-da42737181f9这似乎解释了我的部分问题。
答案 0 :(得分:0)
我正在错误地访问selectedIndex属性。它不是selectBox本身的直接属性,而是它似乎在selectBox的子节点内。
var selectBoxes = document.getElementsByClassName("filterBox");
for(i = 0; i < selectBoxes.length; i++){
selectBoxes.item(i).children[0].selectedIndex = 0;
}