JQuery combina vários atributos
-
03-07-2019 - |
Pergunta
Eu tenho a seguinte marcação e quero fazer o All
botão de rádio verificado.
<ul>
<li><input type="radio" value="All" name="Foo"/>All</li>
<li><input type="radio" value="New" name="Foo"/>New</li>
<li><input type="radio" value="Removed" name="Foo"/>Removed</li>
<li><input type="radio" value="Updated" name="Foo"/>Updated</li>
</ul>
Eu gostaria de combinar via atributo, mas preciso combinar com 2 atributos, @name='Foo'
e @value='All'
.
Algo assim:
$("input[@name='Foo' @value='all']").attr('checked','checked');
Alguém pode mostrar como isso pode ser feito?
Solução
O arquivo HTML a seguir mostra como você pode fazer isso:
<html>
<head>
<script type="text/javascript" src="jquery-1.2.6.pack.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("a").click(function(event){
$("input[name='Foo'][value='All']").attr('checked','checked');
event.preventDefault();
});
});
</script>
</head>
<body>
<ul>
<li><input type="radio" value="All" name="Foo" />All</li>
<li><input type="radio" value="New" name="Foo" />New</li>
<li><input type="radio" value="Removed" name="Foo" />Removed</li>
<li><input type="radio" value="Updated" name="Foo" />Updated</li>
</ul>
<a href="" >Click here</a>
</body>
</html>
Quando você clica no link, o botão de rádio desejado é selecionado. A linha importante é a que configura o checked
atributo.
Outras dicas
Eu estava batendo na cabeça contra uma parede semelhante a isso e só quero ressaltar que, no jQuery 1.3, a sintaxe usada na resposta aceita é a única sintaxe que funcionará. O questionador usa a sintaxe @ para a expressão que não funciona no jQuery. Espero que isso ajude o próximo cara a encontrar essa pergunta via Google = P
Para ficar claro, você tem que usar
jQuery('input[name=field1][val=checked]')
e não
jQuery('input[@name=field1][@val=checked]')