jQuery: Seleção por classe e tipo de entrada


119

Eu gostaria de selecionar um conjunto de elementos que são de um certo tipo de entrada (digamos, uma caixa de seleção) e têm uma determinada classe usando jQuery. No entanto, quando tento o seguinte:

 $("input:checkbox .myClass")

Eu não recebo nenhum item devolvido. Como posso fazer isso no jQuery?

Respostas:


209

Seu seletor está procurando por quaisquer descendentes de um elemento de caixa de seleção que tenha uma classe de .myClass.

Em vez disso, tente isto:

$("input.myClass:checkbox")

Confira em ação .

Eu também testei isso:

$("input:checkbox.myClass")

E também funcionará corretamente. Na minha humilde opinião, essa sintaxe realmente parece bastante feia, pois na maioria das vezes espero que os :seletores de estilo venham por último. Como eu disse, porém, qualquer um vai funcionar.


51

Se você deseja obter as entradas desse tipo com essa classe, use:

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

a sintaxe do seletor [] permite que você verifique qualquer um dos atributos dos elementos. Verifique as especificações para mais detalhes


6

Você deve usar (para caixas de seleção) :checkboxe o .nameatributo para selecionar por classe.

Por exemplo:

$("input.aclass:checkbox")

O :checkboxseletor:

Corresponde a todos os elementos de entrada da caixa de seleção de tipo. Usar este seletor psuedo como $(':checkbox')é equivalente a $('*:checkbox') qual é um seletor lento. É recomendado fazer $('input:checkbox').

Você deve ler a documentação do jQuery para saber sobre os seletores.


4

Você deve usar o nome da classe assim

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

Experimente usar esta demonstração ao vivo


1
resposta não é relevante para a pergunta.
Avnish alok

1
ainda assim, a resposta é inteiramente útil para outros que procuram coisas semelhantes, mas não a pergunta exata do OP.
camdixon


3

Caso algum manequim como eu tenha tentado as sugestões aqui com um botão e não tenha encontrado nada funcionado, você provavelmente quer isto:

$(':button.myclass')
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.