Pregunta
Estoy tratando de obtener el nombre de una clase que hacía juego con una expresión regular de una entrada marcada.
Si tengo esto:
<input type="radio" class="toggle toggle-1" />
<input type="radio" class="toggle toggle-2" checked="checked" />
<input type="radio" class="toggle toggle-3" />
Quiero descubrir que 'alternar-2' es la clase seleccionada.
$('.toggle:checked').className.match(/toggle\-.+?\b/);
Pero la producida 'className es indefinido' errores.
Creo que mi problema es que estoy usando className contra un objeto jQuery. Pero no estoy muy seguro de cuál es la alternativa.
Solución
Puede llamar al método attr para obtener los atributos subyacentes en el elemento que necesita.
$('.toggle:checked').attr('class').match(/toggle\-.+?\b/);
Otros consejos
className es un miembro de DOM estándar, no una propiedad envoltorio jQuery. Cualquiera de acceso a través de $('something')[0].className
o $('something').attr('class')
jQuery, pero no se puede mezclar.
Parece que tiene múltiples radio
s sin name
compartida? Eso no funcionará, estarán todos los campos actúan por separado ast comprobables. Todos los controles radio
que pertenecen juntos necesita tener el mismo name
(pero diferente value
s) y ser colocado dentro de la misma forma.
¿No necesitas una identificación de todos los elementos de jQuery es mirar?
$('.toggle:checked').hasClass('toggle-2');