jQuery: wybieranie według klasy i typu danych wejściowych

120

Chciałbym wybrać zestaw elementów, które mają zarówno określony typ danych wejściowych (powiedzmy, pole wyboru), jak i określoną klasę za pomocą jQuery. Jednak gdy próbuję wykonać następujące czynności:

 $("input:checkbox .myClass")

Nie otrzymuję żadnych zwrotów. Jak mogę to osiągnąć w jQuery?

Brian Sullivan
źródło

Odpowiedzi:

210

Twój selektor szuka elementów potomnych elementu pola wyboru, które mają klasę .myClass.

Spróbuj tego zamiast tego:

$("input.myClass:checkbox")

Sprawdź to w akcji .

Testowałem też to:

$("input:checkbox.myClass")

I to też będzie działać poprawnie. Moim skromnym zdaniem ta składnia wygląda naprawdę brzydko, ponieważ przez większość czasu oczekuję, że :selektory stylu będą ostatnie. Jak już powiedziałem, każdy z nich zadziała.

Paolo Bergantino
źródło
51

Jeśli chcesz uzyskać dane wejściowe tego typu z tą klasą, użyj:

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

składnia selektora [] umożliwia sprawdzenie dowolnego atrybutu elementu. Sprawdź specyfikację, aby uzyskać więcej informacji

BarokowyBobcat
źródło
6

Musisz użyć (dla pól wyboru) :checkboxi .nameatrybutu, aby wybrać według klasy.

Na przykład:

$("input.aclass:checkbox")

:checkboxSelektor:

Pasuje do wszystkich elementów wejściowych typu checkbox. Używanie tego podobnego $(':checkbox')do pseudo-selektora jest odpowiednikiem tego, $('*:checkbox') co jest powolnym selektorem. Zaleca się to zrobić $('input:checkbox').

Powinieneś przeczytać dokumentację jQuery, aby dowiedzieć się o selektorach.

eKek0
źródło
4

Powinieneś użyć takiej nazwy klasy

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

Spróbuj użyć tego do demonstracji na żywo

Akhil Chandran
źródło
1
odpowiedź nie ma znaczenia dla pytania.
Avnish alok
1
jednak odpowiedź jest całkowicie pomocna dla innych, którzy szukają podobnych rzeczy, ale nie dokładnego pytania PO.
camdixon
3

Spróbuj tego:

$("input:checkbox").hasClass("myClass");
Fabio Padua
źródło
3

Na wypadek, gdyby jakiekolwiek manekiny takie jak ja wypróbowały sugestie tutaj za pomocą przycisku i nie znalazły nic nie działającego, prawdopodobnie chcesz tego:

$(':button.myclass')
iforce2d
źródło