如何使用javascript从列表框中获取多个选定的值和项目

R J*_* J. 17 html javascript

<!DOCTYPE html>
<html>
<script>
function getValue()
{
  var x=document.getElementById("sel");
  for (var i = 0; i < x.options.length; i++) {
     if(x.options[i].selected ==true){
          alert(x.options[i].selected);
      }
  }
}
</script>
</head>
<body>
<select multiple="multiple" id="sel">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
</select>
<input type="button" value="Get Value" onclick="getValue()"/>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是我的代码.如何使用javascript从列表框中获取所有选定的值.上面的代码显示所有选定值的true.

Pet*_*son 18

更换

  if(x.options[i].selected ==true){
      alert(x.options[i].selected);
  }
Run Code Online (Sandbox Code Playgroud)

  if(x.options[i].selected){
      alert(x.options[i].value);
  }
Run Code Online (Sandbox Code Playgroud)


Kon*_*nev 6

我建议你使用jQuery这样做:

var selected = $('#sel option:selected');
Run Code Online (Sandbox Code Playgroud)

如果您不想使用jQuery,请忽略此答案并参考其他答案.

  • 问题要求JavaScript解决方案并且没有标记*jQuery* (6认同)
  • 来自http://api.jquery.com/selected-selector/:"*因为`:selected`是一个jQuery扩展而不是CSS规范的一部分,使用`:selected`的查询无法利用提供的性能提升本机DOM`querySelectorAll()`方法.为了在使用`:selected`选择元素时获得最佳性能,首先使用纯CSS选择器选择元素,然后使用`.filter(":selected")`*".因此`var selected = $('#sel option').filter(':selected');`更好. (5认同)