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.

¿Fue útil?

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');
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top