quarta-feira, 13 de junho de 2012

Dicas rápidas de jQuery: Selecionando múltiplas classes de uma vez

Considere uma página com os seguintes elementos:

<input type="text" class="classe1" id="txtNome" />
<input type="text" class="classe2" id="txtSobrenome" />
<input type="text" class="classe3" id="txtTelefone" />
<input type="text" class="classe4" id="txtEndereco" />
<input type="text" class="classe1 classe2 classe3" id="txtEmail" /> 
<input type="text" class="classe1 classe2 classe4" id="txtEmail" />


Por vezes, em nossos projetos, queremos aplicar uma regra, efeito ou comportamento a elementos de várias classes ao mesmo tempo. Imagine que queremos, no exemplo acima, limpar o conteúdo de todas as caixas de texto que implementem as classes: classe1, classe2 e classe3.

Em vez de escrever:

$('classe1').val('');
$('classe2').val('');
$('classe3').val('');

podemos usar um seletor com diversas classes, reduzindo o código acima a:


$('classe1, .classe2, .classe3').val('');

E caso queiramos limpar todos os elementos que implementam, ao mesmo tempo, as classes classe1, classe2 e classe3, utilizamos a seguinte sintaxe:

$('classe1.classe2.classe3').val('');

No primeiro exemplo limpamos o conteúdo de todas as caixas de texto, exceto a txtEndereco, porque à exceção dela, todas implementam pelo menos uma das três classes que informamos ao seletor.

Já no segundo caso, apenas a txtEmail será selecionada, porque é a única que implementa as três classes simultaneamente.