Saya tahu ini sudah lama tetapi pertanyaannya agak ambigu dalam berganti itu berarti setiap kotak centang harus berganti statusnya, apa pun itu. Jika Anda telah memeriksa 3 dan 2 tidak dicentang, maka beralih akan membuat 3 pertama tidak dicentang dan 2 terakhir dicentang.
Untuk itu, tidak ada solusi di sini yang berfungsi karena mereka membuat semua kotak centang memiliki status yang sama, daripada beralih setiap negara kotak centang. Melakukan $(':checkbox').prop('checked')
pada banyak kotak centang mengembalikan logika AND antara semua .checked
properti biner, yaitu jika salah satunya tidak dicentang, nilai yang dikembalikan adalah false
.
Anda harus menggunakan .each()
jika Anda ingin benar-benar beralih setiap negara kotak centang daripada membuat semuanya sama, misalnya
$(':checkbox').each(function () { this.checked = !this.checked; });
Perhatikan bahwa Anda tidak perlu $(this)
di dalam penangan karena .checked
properti ada di semua browser.