Wenn Ihre Kontrollkästchen wirklich Geschwister sind, dann ist Gaby's Antwort, die besagt, dass cb.index()
es tun sollte, ganz korrekt. Seien Sie jedoch vorsichtig, dass Sie verstehen, was Ihnen index
tatsächlich mitteilt. Zum Beispiel, mit diesem Markup:
Eins
Zwei
Drei
Vier
...wenn Ihr cb
von (sagen wir) $('#thediv input[type=checkbox][name=three]')
stammt, wird das Ergebnis von cb.index()
0
sein (Link zum Beispiel). Offensichtlich nicht das, was Sie wollen.
Sie können das auf ein paar Arten handhaben. Mit dem spezifischen obigen Beispiel könnten Sie einfach nachsehen, wo das Elternelement label
relativ zu seinen Geschwistern war: cb.parent().index()
(Link zum Beispiel). Je nach Ihrem Markup kann das jedoch kompliziert sein.
Es gibt einen Weg, der weniger anfällig für subtile Markup-Änderungen ist: Wählen Sie genau die Liste von Elementen aus, die Sie berücksichtigen möchten, und fragen Sie dann jQuery, wo cb
innerhalb dieser Liste ist. Also mit dem obigen Markup könnten Sie das tun:
// Der Selektor wählt *genau* die Sache aus, die wir
// betrachten wollen, und dann sucht `index` nach `cb` innerhalb dieser Liste
var index = $('#thediv input[type=checkbox]').index(cb);
Link zum Beispiel