2012-03-22 96 views
1

我有多個相同類的多選框,我想取消選擇所有事件。他們有一個與他們周圍同級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選項?

回答

6

你也可以嘗試使用這個prop

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

檢查出來:http://jsfiddle.net/EVrrz/3/

+1

whoo,很多正確的答案,因爲jsfiddle演示選擇了這個。 – tonymarschall 2012-03-22 18:38:55

1

沒問題。

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

現在,測試和工程:)

+0

哦,這些都不是複選框。嗯,不知道它是否仍然有效...不是那麼多。修改... – 2012-03-22 18:17:36

+1

我不知道爲什麼我讀這個問題這麼難。這並不複雜。代碼現在反映問題並且實際工作 - 請參閱[jsfiddle](http://jsfiddle.net/BXK8n/)。 – 2012-03-22 18:24:35

2

使用removeAttr

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

而且因爲你只想取消選中所有項目,使用click(有一個按鈕,或者別的什麼),而不是的change

+0

+1更嚴格的選擇器 – kinakuta 2012-03-22 18:27:21

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"); 
}); 
0

能不能改變的值刪除選定的屬性選擇一個空值和jQuery將處理其餘的,不需要循環

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

以下是我大概會做到這一點:

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

這裏有一個jsfiddle證明。這實現了全部選擇/全部取消選擇,但您可以僅通過將this.checked設置爲false來取消選擇。

+0

@Starx:他使用複選框選擇所有/取消全選過程。如果你閱讀代碼,你會看到。 – 2012-03-22 18:36:48

+0

@Starx他所指的div只是選擇的容器。我使用複選框來實現OP引用的#element_to_uncheck_all_options(但不指定實際使用的輸入) - 我的示例僅用於演示目的。 – kinakuta 2012-03-22 18:42:49

相關問題