如何通过类与jquery取消选中多个选择框选项?

时间:2012-03-22 18:11:18

标签: javascript jquery jquery-selectors

我有多个具有相同类的多选框,我想取消选择一个事件。他们所有的div都有同一个类class_for_all_multi_selects

$("#element_to_uncheck_all_options").change(function() {
  $('.class_for_all_multi_selects'). ...?
});

<div class="class_for_all_multi_selects">
  <select multiple="multiple" name="1">
    <option value="1">option1</option>
    <option value="2">option2</option>
  </select>
</div>

<div class="class_for_all_multi_selects">
  <select multiple="multiple" name="2">
    <option value="1">option1</option>
    <option value="2">option2</option>
  </select>
</div>

如何使用jquery按类取消选中多个选择框选项?

6 个答案:

答案 0 :(得分:6)

您也可以使用prop尝试此操作:

 $("div.class_for_all_multi_selects option:selected").prop('selected',false);

检查出来:http://jsfiddle.net/EVrrz/3/

答案 1 :(得分:3)

使用removeAttr()从所有选项中删除所选属性

$('select option:selected').removeAttr("selected");

由于您说#element_to_uncheck_all_options是div,因此您应该绑定click个事件而不是change

$("#element_to_uncheck_all_options").click(function() {
   $('select option:selected').removeAttr("selected");
});

答案 2 :(得分:2)

使用removeAttr

$("#element_to_uncheck_all_options").click(function() {
    $("div.class_for_all_multi_selects option:selected").removeAttr("selected");
});

由于您只想取消选中所有项目,请使用click(使用按钮或其他内容)代替change

答案 3 :(得分:1)

不是问题。

$("#element_to_uncheck_all_options").click(function() {
    $(".class_for_all_multi_selects option").attr("selected", false);
});​

现已测试并且有效:)

答案 4 :(得分:1)

以下是我可能会这样做的方式:

$('#selectAll').change(function() {
    $('.class_for_all_multi_selects option').prop('selected', this.checked);
});

这是一个jsfiddle来演示。这实现了一个select all / unselect all,但你只能通过将this.checked设置为false来取消选择。

答案 5 :(得分:0)

只需将select的值更改为空值,jQuery将处理其余的值,无需循环

 $('.class_for_all_multi_selects select').val('');