Javascript循环遍历所有HTML选择<选项>

Mar*_*edy 11 html javascript html-select

我很惊讶我在网上找不到这个代码!

如何访问选择列表中的所有选定索引?不只是第一个?

HTML:

<select name="trends[]" multiple="multiple" id="trends" size="35"></select>

JS:

function moveSelectedTrends()
{
     var selectedTrends = document.getElementById('trends');

     for(var i=0; i < selectedTrends.length; i++)
     {
       alert(selectedTrends.options[selectedTrends.selectedIndex].value) //ONLY returns the first selected element!
     }
}
Run Code Online (Sandbox Code Playgroud)

Que*_*tin 14

使用i而不是selectedTrends.selectedIndex测试它是否selected.

   function moveSelectedTrends() {
     var trends = document.getElementById('trends'), trend, i;

     for(i = 0; i < trends.length; i++) {
       trend = trends[i];
       if (trend.selected) {
           alert(trend.value);
       }
     }
   }
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,不适用于非常大的数据集. (4认同)

dan*_*vis 11

避免循环的一种简单方法是QSA:

[].forEach.call(  document.querySelectorAll('#trends :checked')  , function(elm){
    alert(elm.value);
})
Run Code Online (Sandbox Code Playgroud)

:选中的选择器足够智能,可以处理<select>菜单......