3 回答

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

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