我有多个具有相同类的多选框,我想取消选择一个事件。他们所有的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按类取消选中多个选择框选项?
答案 0 :(得分:6)
您也可以使用prop
尝试此操作:
$("div.class_for_all_multi_selects option:selected").prop('selected',false);
答案 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('');