在javascript中迭代html数组

1 html javascript

嗨我在我的页面上选择名称为viewer [].

在javascript中,我希望遍历此数组并获取每个选定的索引.

  var welements = document.getElementsByName('viewer[]')[0];
      for ( var i in welements )
        {
        alert(i.selectedIndex);
          } 
Run Code Online (Sandbox Code Playgroud)

我有上面但显然是错的.我相信第一行是正确的 - document.getElementsByName返回一个数组,所以我只想要第一个(也是唯一的)结果,即viewer [] html数组

建议表示赞赏,谢谢!

Que*_*tin 7

getElementsByName需要NodeList,而不是Array.NodeLists与Arrays非常相似,但存在差异.

无论哪种方式,你都不应该使用它来迭代它们for (foo in bar)- 它获取所有属性(包括foo.length),而不仅仅是你关心的值.

使用:

var welements = document.getElementsByName('viewer[]'); // Removed [0], that gets the **1st** node, not the NodeList.
for (var i = 0, j = welements.length; i < j; i++) {
    var an_element = welements[i];
    alert(an_element.selectedIndex);
}
Run Code Online (Sandbox Code Playgroud)