jQuery coincide con múltiples atributos
-
03-07-2019 - |
Pregunta
Tengo el siguiente marcado y quiero que se marque el botón de opción All
.
<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>
Me gustaría hacer coincidir a través de un atributo, pero necesito coincidir en 2 atributos, @ name = 'Foo'
y @ value = 'All'
.
Algo como esto:
$("input[@name='Foo' @value='all']").attr('checked','checked');
¿Puede alguien mostrar cómo se puede hacer esto?
Solución
El siguiente archivo HTML muestra cómo puedes hacer esto:
<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>
Al hacer clic en el enlace, se selecciona el botón de opción deseado. La línea importante es la que establece el atributo checked
.
Otros consejos
Estaba golpeando mi cabeza contra un muro similar a este y solo quiero señalar que en jQuery 1.3 la sintaxis utilizada en la respuesta aceptada es la ÚNICA sintaxis que funcionará. El interrogador utiliza la sintaxis de @ para la expresión que no funciona en absoluto en jQuery. Esperemos que esto ayude al próximo tipo a encontrar esta pregunta a través de Google = p
Para ser claro, tienes que usar
jQuery('input[name=field1][val=checked]')
y no
jQuery('input[@name=field1][@val=checked]')