jQuery: Auswahl nach Klasse und Eingabetyp

119

Ich möchte eine Reihe von Elementen auswählen, die beide einen bestimmten Eingabetyp haben (z. B. ein Kontrollkästchen) und mit jQuery eine bestimmte Klasse haben. Wenn ich jedoch Folgendes versuche:

 $("input:checkbox .myClass")

Ich bekomme keine Artikel zurück. Wie kann ich dies in jQuery erreichen?

Brian Sullivan
quelle

Antworten:

208

Ihr Selektor sucht nach Nachkommen eines Kontrollkästchenelements mit einer Klasse von .myClass.

Versuchen Sie stattdessen Folgendes:

$("input.myClass:checkbox")

Probieren Sie es in Aktion aus .

Ich habe das auch getestet:

$("input:checkbox.myClass")

Und es wird auch richtig funktionieren. Meiner bescheidenen Meinung nach sieht diese Syntax wirklich ziemlich hässlich aus, da ich die meiste Zeit davon :ausgehe, dass die Stilauswahl an letzter Stelle steht. Wie gesagt, beide werden funktionieren.

Paolo Bergantino
quelle
51

Wenn Sie die Eingaben dieses Typs mit dieser Klasse erhalten möchten, verwenden Sie:

$("input.myClass[type=checkbox]")

Mit der Selektorsyntax [] können Sie jedes Elementattribut überprüfen. Weitere Informationen finden Sie in der Spezifikation

BarockBobcat
quelle
6

Sie müssen (für Kontrollkästchen) :checkboxund das .nameAttribut verwenden, um es nach Klasse auszuwählen.

Beispielsweise:

$("input.aclass:checkbox")

Der :checkboxSelektor:

Entspricht allen Eingabeelementen des Kontrollkästchens. Die Verwendung dieses Pseudo-Selektors wie $(':checkbox')entspricht $('*:checkbox') einem langsamen Selektor. Es wird empfohlen, dies zu tun $('input:checkbox').

Sie sollten die jQuery-Dokumentation lesen , um mehr über Selektoren zu erfahren.

eKek0
quelle
4

Sie sollten den Klassennamen so verwenden

$(document).ready(function(){
    $('input.addCheck').prop('checked',true);
});

Versuchen Sie, dies als Live-Demo zu verwenden

Akhil Chandran
quelle
1
Die Antwort ist für die Frage nicht relevant.
Avnish alok
1
Die Antwort ist jedoch für andere, die nach ähnlichen Dingen suchen, aber nicht die genaue OP-Frage, völlig hilfreich.
Camdixon
3

Versuche dies:

$("input:checkbox").hasClass("myClass");
Fabio Padua
quelle
3

Nur für den Fall, dass Dummies wie ich die Vorschläge hier mit einem Knopf ausprobiert haben und festgestellt haben, dass nichts funktioniert, möchten Sie wahrscheinlich Folgendes:

$(':button.myclass')
iforce2d
quelle