web-dev-qa-db-fra.com

Existe-t-il un sélecteur d'attribut "ou", comme input [type = button | text]?

J'essaie de sélectionner tous les éléments input d'une page, mais pas ceux de type image, button ou submit. Ce qui m’est venu à l’esprit a d’abord été de sélectionner tous les éléments input de type text, puis tous de type checkbox etc.

Cependant, ce n'est pas très élégant. Je me demandais s'il y avait une meilleure technique ici. Ce qui serait utile est un sélecteur comme input[type=text|checkbox|radio|password|etc], mais cela ne semble pas être disponible.

Je sais que je peux également sélectionner tous les input et les filtrer à l'aide de .filter(), mais existe-t-il un sélecteur plus générique permettant de sélectionner des éléments possédant l'un d'une liste d'attributs?

37
pimvdb

Puisque vous voulez tout inclure sauf quelques types particuliers, essayez ceci:

$('input:not([type=image],[type=button],[type=submit])')
47
Michael Haren
$('input[type=text], input[type=checkbox], input[type=radio]').stuff();

ou (tiré des commentaires)

$('input:not([type=image],[type=button],[type=submit]')
27
drudge

En CSS, vous pouvez avoir des sélecteurs comme:

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

peut-être que cela fonctionne aussi dans jQuery.

5
line-o

Je sais que c'est vieux, mais je pense que la meilleure solution élégante serait de leur donner une classe commune et de l'utiliser ensuite comme sélecteur?

0
Kalpesh Popat

Les réponses ci-dessus ne sont pas entièrement vraies.

Lorsqu'elles dépendent d'un identifiant (#), ces méthodes semblent échouer.

D'après mon expérience, nous devons ajouter l'ID pour chaque instruction or.

Ainsi:

$('#id input[type=text], #id input[type=checkbox], ...
0
Jeec