【问题标题】:Javascript loop through ALL HTML select <option>Javascript 循环遍历所有 HTML 选择 <option>
【发布时间】:2014-01-24 21:56:17
【问题描述】:

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

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

HTML:

&lt;select name="trends[]" multiple="multiple" id="trends" size="35"&gt;&lt;/select&gt;

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!
     }
}

【问题讨论】:

标签: javascript html html-select


【解决方案1】:

使用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);
       }
     }
   }

【讨论】:

  • 很遗憾,不适用于非常大的数据集。
【解决方案2】:

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

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

:checked 选择器足够聪明,可以处理

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-12
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    • 2010-11-17
    • 2014-10-26
    相关资源
    最近更新 更多