jQuery correspond à plusieurs attributs
-
03-07-2019 - |
Question
J'ai le balisage suivant et je souhaite activer la case d'option Tout
.
<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>
J'aimerais faire correspondre l'attribut via, mais je dois faire correspondre deux attributs, @ name = 'Foo'
et @ value = 'All'
.
Quelque chose comme ça:
$("input[@name='Foo' @value='all']").attr('checked','checked');
Quelqu'un peut-il montrer comment cela peut être fait?
La solution
Le fichier HTML suivant montre comment procéder:
<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>
Lorsque vous cliquez sur le lien, le bouton radio de votre choix est sélectionné. La ligne importante est celle définissant l'attribut vérifié
.
Autres conseils
Je me frappais la tête contre un mur similaire à celui-ci et je voulais simplement souligner que dans jQuery 1.3, la syntaxe utilisée dans la réponse acceptée est la syntaxe SEULE qui fonctionnera. Le questionneur utilise la syntaxe @ pour l'expression qui ne fonctionne pas du tout dans jQuery. Espérons que cela aide le prochain gars à trouver cette question via Google = p
Pour être clair, vous devez utiliser
jQuery('input[name=field1][val=checked]')
et non
jQuery('input[@name=field1][@val=checked]')