3 回答

TA貢獻1876條經(jīng)驗 獲得超5個贊
你可以寫:
$(document).ready(function() {
$("#select-all-teammembers").click(function() {
var checkBoxes = $("input[name=recipients\\[\\]]");
checkBoxes.prop("checked", !checkBoxes.prop("checked"));
});
});
在jQuery 1.6之前,當我們只有attr()而不是prop()時,我們曾經(jīng)這樣寫:
checkBoxes.attr("checked", !checkBoxes.attr("checked"));
但是,prop()與attr()應(yīng)用于“布爾” HTML屬性相比,它具有更好的語義,因此在這種情況下通常是首選的。

TA貢獻1811條經(jīng)驗 獲得超4個贊
我知道這很舊,但是問題有點模棱兩可,因為切換可能意味著每個復(fù)選框都應(yīng)該切換其狀態(tài),無論是什么狀態(tài)。如果您有3個選中項和2個未選中項,則切換將使前3個處于未選中狀態(tài),而最后2個處于選中狀態(tài)。
為此,這里的所有解決方案都不起作用,因為它們使所有復(fù)選框具有相同的狀態(tài),而不是切換每個復(fù)選框的狀態(tài)。$(':checkbox').prop('checked')對許多復(fù)選框執(zhí)行操作會在所有.checked二進制屬性之間返回邏輯與,即,如果未選中其中之一,則返回值為false。
.each()如果要實際切換每個復(fù)選框狀態(tài)而不是使它們都相等,則需要使用,例如
$(':checkbox').each(function () { this.checked = !this.checked; });
請注意,您不需要$(this)在處理程序內(nèi)部,因為該.checked屬性存在于所有瀏覽器中。
- 3 回答
- 0 關(guān)注
- 501 瀏覽
添加回答
舉報