Ich weiß, dass diese Frage alt ist, aber sie war insofern etwas zweideutig, als dass umzuschalten. kann bedeuten, dass jedes Kontrollkästchen seinen Zustand umschalten sollte, was auch immer das ist. Wenn Sie 3 angekreuzt und 2 nicht angekreuzt haben, dann würde das Umschalten die ersten 3 nicht angekreuzt und die letzten 2 angekreuzt machen.
Deshalb funktioniert keine der hier vorgestellten Lösungen, da alle Kontrollkästchen denselben Status haben, anstatt den Status jedes einzelnen Kontrollkästchens umzuschalten. Tun $(':checkbox').prop('checked')
bei mehreren Kontrollkästchen ergibt das logische UND zwischen allen .checked
binäre Eigenschaften, d.h. wenn eine dieser Eigenschaften nicht angekreuzt ist, ist der zurückgegebene Wert false
.
Sie müssen Folgendes verwenden .each()
wenn Sie die Zustände der einzelnen Kontrollkästchen tatsächlich umschalten wollen, anstatt sie alle gleich zu machen, z. B.
$(':checkbox').each(function () { this.checked = !this.checked; });
Beachten Sie, dass Sie nicht brauchen $(this)
innerhalb des Handlers als die .checked
Eigenschaft ist in allen Browsern vorhanden.