Ich möchte eine Liste mit Namen von Kontrollkästchen erhalten, die in einem Div mit einer bestimmten ID ausgewählt sind. Wie würde ich das mit jQuery machen?
Zum Beispiel möchte ich für dieses div Array ["c_n_0"; "c_n_3"] oder eine Zeichenfolge "c_n_0; c_n_3"
<div id="checkboxes">
<input id="chkbx_0" type="checkbox" name="c_n_0" checked="checked" />Option 1
<input id="chkbx_1" type="checkbox" name="c_n_1" />Option 2
<input id="chkbx_2" type="checkbox" name="c_n_2" />Option 3
<input id="chkbx_3" type="checkbox" name="c_n_3" checked="checked" />Option 4
</div>
jquery
checkbox
jquery-selectors
Juozas Kontvainis
quelle
quelle
var selected = new Array();
. Besser (billiger) mitvar selected = [];
change
Funktion?Würde das reichen?
quelle
.attr('checked')
oder.prop('checked')
oder.is(':checked')
nicht funktioniert, versuchen.get(0).checked
gibt Ihnen eine Reihe der Elemente selbst. Wenn Sie nur speziell die Namen benötigen:
quelle
$("#checkboxes :checked").map(...)
wäre prägnanter. Wie Jansen betont, sollte es sein$(this).attr("name")
; aber ich würde eine einfachethis.name
in Betracht ziehen, die genauso kompatibel sein sollte.children
zufind
, um tiefer zu schauen, und brauchte so verwendete jquery-Attribute$(this)
(und schrieb diesen Kommentar, wenn ich wieder schaue ...)Ich brauchte die Anzahl aller Kontrollkästchen, die aktiviert sind. Anstatt eine Schleife zu schreiben, habe ich das getan
Vergleichen Sie es mit der Gesamtzahl der Kontrollkästchen, um festzustellen, ob sie gleich sind. Hoffe es wird jemandem helfen
quelle
Das funktioniert bei mir.
quelle
Sie können ihnen auch alle den gleichen Namen geben, damit sie ein Array sind , aber ihnen unterschiedliche Werte geben :
Mit map können Sie dann nur den Wert der angekreuzten Werte ermitteln :
quelle
quelle
quelle