2011-05-12 8 views
33

Estoy tratando de seleccionar todos los elementos input en una página, pero no los que son del tipo image, button o submit. Lo que primero me vino a la mente fue seleccionar todos los elementos input que son del tipo text, luego todos del tipo checkbox etc.¿Hay un selector de atributo "o", como entrada [tipo = botón | texto]?

Sin embargo, esto no es muy elegante. Me preguntaba si hay alguna técnica mejor aquí. Lo que sería útil es un selector como input[type=text|checkbox|radio|password|etc], pero parece que no está disponible.

Sé que también puedo seleccionar todos input sy luego filtrarlos usando .filter(), pero ¿hay un selector más genérico para seleccionar los elementos que tienen uno de una lista de atributos?

+0

+1 para la pregunta interesante. – pixelbobby

Respuesta

44

Puesto que usted quiere incluir todo excepto unos tipos particulares, intente esto:

$('input:not([type=image],[type=button],[type=submit])') 
+5

¡No tengas miedo! –

+0

+1 Lamentablemente obtienes más votos positivos con tu comentario que con tu respuesta. yo trato de mejorar eso. –

+1

Documentos: http://api.jquery.com/multiple-selector/ –

21
$('input[type=text], input[type=checkbox], input[type=radio]').stuff(); 

o (tomado de los comentarios)

$('input:not([type=image],[type=button],[type=submit]') 
+4

o '$ ('entrada: no ([tipo = imagen], [tipo = botón], [tipo = enviar])' (movió este comentario a una respuesta) –

+0

esta es una buena –

+0

@Michael Haren: Eso parece lo que estoy buscando, ¡gracias! – pimvdb

5

En CSS se puede tener selectores como:

input[type=text],input[type=checkbox],input[type=radio],input[type=password] 

tal vez esto funciona en jQuery también.

0

Sé que es viejo, pero me siento la mejor solución elegante para esto sería para darles una clase común y luego usar eso como un selector?

0

Las respuestas anteriores no son del todo ciertas.

Cuando dependen de una identificación (#) estos métodos parecen fallar.

En mi experiencia necesitamos agregar la identificación para cada declaración or.

así:

$('#id input[type=text], #id input[type=checkbox], ... 
Cuestiones relacionadas