我怎样才能取消选择类与jquery的多个选择框选项?
我有多个相同类的多选框,我想取消选择所有事件。他们有一个与他们周围同级class_for_all_multi_selects
的div。我怎样才能取消选择类与jquery的多个选择框选项?
$("#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选项?
没问题。
$("#element_to_uncheck_all_options").click(function() {
$(".class_for_all_multi_selects option").attr("selected", false);
});
现在,测试和工程:)
哦,这些都不是复选框。嗯,不知道它是否仍然有效...不是那么多。修改... – 2012-03-22 18:17:36
我不知道为什么我读这个问题这么难。这并不复杂。代码现在反映问题并且实际工作 - 请参阅[jsfiddle](http://jsfiddle.net/BXK8n/)。 – 2012-03-22 18:24:35
使用removeAttr
:
$("#element_to_uncheck_all_options").click(function() {
$("div.class_for_all_multi_selects option:selected").removeAttr("selected");
});
而且因为你只想取消选中所有项目,使用click
(有一个按钮,或者别的什么),而不是的change
。
+1更严格的选择器 – kinakuta 2012-03-22 18:27:21
使用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");
});
能不能改变的值删除选定的属性选择一个空值和jQuery将处理其余的,不需要循环
$('.class_for_all_multi_selects select').val('');
以下是我大概会做到这一点:
$('#selectAll').change(function() {
$('.class_for_all_multi_selects option').prop('selected', this.checked);
});
这里有一个jsfiddle证明。这实现了全部选择/全部取消选择,但您可以仅通过将this.checked设置为false来取消选择。
@Starx:他使用复选框选择所有/取消全选过程。如果你阅读代码,你会看到。 – 2012-03-22 18:36:48
@Starx他所指的div只是选择的容器。我使用复选框来实现OP引用的#element_to_uncheck_all_options(但不指定实际使用的输入) - 我的示例仅用于演示目的。 – kinakuta 2012-03-22 18:42:49
whoo,很多正确的答案,因为jsfiddle演示选择了这个。 – tonymarschall 2012-03-22 18:38:55