单击时,JQuery选择多选选择框的所有选项

sko*_*kos 67 html javascript jquery

这是我的HTML

<select name="countries" id="countries" MULTIPLE size="8">
   <option value="UK">UK</option>
   <option value="US">US</option>
   <option value="Canada">Canada</option>
   <option value="France">France</option>
   <option value="India">India</option>
   <option value="China">China</option>
</select>
<br />
<input type="button" id="select_all" name="select_all" value="Select All">
Run Code Online (Sandbox Code Playgroud)

当用户点击"全选"按钮时,我希望选择选择框中的所有选项

$('#select_all').click( function() {
    // ?
});
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 170

试试这个:

$('#select_all').click(function() {
    $('#countries option').prop('selected', true);
});
Run Code Online (Sandbox Code Playgroud)

这是一个现场演示.

  • @KevinMeredith,它不是必需的,它是对API的误用.这个答案演示了stackoverflow的问题本质,提问者不知道什么是最好的答案,但无论如何选择一个.这个答案突然出现在顶部,所有接下来的访问者都不知道这是错误的.令人惊讶的是,你知道这是错误的,但同样也支持它.(抱歉Darin真的不是在亲自反对你.) (2认同)
  • @gdoron,你是对的。“prop”方法应与“selected”和“checked”等属性的布尔值一起使用。我已经更新了我的答案。 (2认同)

gdo*_*ica 16

对于jQuery版本1.6+然后

$('#select_all').click( function() {
    $('#countries option').prop('selected', true);
});
Run Code Online (Sandbox Code Playgroud)

或者对于旧版本:

$('#select_all').click( function() {
    $('#countries option').attr('selected', 'selected');
});
Run Code Online (Sandbox Code Playgroud)

现场演示

  • @Alp.阅读规范:_"selected [CI]设置时,此布尔属性指定此选项已预先选定."_**boolean!**.从文档中看到这个例子:`$("input").prop("checked",true);` (2认同)