Я знаю, що це старе, але питання було трохи неоднозначним, оскільки перемикання може означати, що кожен прапорець повинен перемикати свій стан, незалежно від того, що це є. Якщо у вас є 3 перевірені та 2 неперевірені, тоді перемикання зробить перші 3 неперевіреними та останні 2 перевіреними.
З цього приводу жодне з рішень тут не працює, оскільки вони роблять усі прапорці однаковими, а не перемикають стан кожного прапорця. Здійснення $(':checkbox').prop('checked')
на багатьох прапорцях повертає логічне І між усіма .checked
бінарними властивостями, тобто, якщо один з них не встановлений, повернене значення є false
.
Вам потрібно скористатися, .each()
якщо ви хочете фактично переключити кожен стан прапорця, а не зробити їх рівними, наприклад
$(':checkbox').each(function () { this.checked = !this.checked; });
Зауважте, що вам не потрібно $(this)
всередині обробника, оскільки .checked
властивість існує у всіх браузерах.