【问题标题】:Javascript store <select> dropdown values within arrayJavascript 在数组中存储 <select> 下拉值
【发布时间】:2012-08-14 17:05:24
【问题描述】:

我想知道是否可以将 &lt;select&gt; 中的选定值存储在 JS 数组中。

我最终需要做的是计算大约 10 个下拉列表中的最高 6 个值,我想我可以使用 JS Math.max() 函数来完成。

非常感谢您的帮助。

这里是一些示例代码:

<? while($subjects = mysql_fetch_array($query)) { ?>
<select class="points">
<optgroup label="<?=$subjects['name']?>">
  <option value="100">A1</option>
  <option value="90">A2</option>
  <option value="85">B1</option>
  <option value="80">B2</option>
  <option value="75">B3</option>
</optgroup>
</select>
<? } ?>

<script>....

【问题讨论】:

    标签: javascript arrays select while-loop sum


    【解决方案1】:

    试试这个:

    var selectValues = [];
    var selectNodeList = document.getElementsByClassName("points");
    for (var i = 0; i < selectNodeList.length; i++) {
        selectValues.push(selectNodeList[i].value)
    }
    // selectValues array now stores values of all <select> lists with class "points"
    

    【讨论】:

      【解决方案2】:

      做这样的事情(JQuery):

      var selected = new Array();
                  $('.points option:selected').each(function() {
                      selected.push($(this).val());
                  });
      

      【讨论】:

        【解决方案3】:
        var selects = [].slice.apply(document.getElementsByTagName('select'));
        selects.forEach(function (elem, i){
            var value = elem.options[elem.selectedIndex].value;
            //Do something with this value. Push it to an array, perhaps.
        });​
        

        这假定页面上的所有selects 都应包括在内。如果不是这种情况,那么您应该改用document.getElementsByClassName 或类似的、更合适的选择器。

        Demo

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多