2012-09-09 5 views
175

Quelle est la syntaxe pour faire quelque chose comme:Spécifiez plusieurs sélecteurs d'attributs CSS

input[name="Sex" AND value="M"] 

Fondamentalement, je veux sélectionner l'élément input qui a l'attribut name="Sex" ainsi que l'attribut value="M":

<input type="radio" name="Sex" value="M" /> 

Des éléments tels que les éléments suivants devraient pas être sélectionnés:

<input type="radio" name="Sex" value="F" /> 

Répondre

261

Simple input[name=Sex][value=M] ferait très joli. Et il est en réalité bien décrit dans le standard doc:

sélecteurs d'attributs multiples peuvent être utilisés pour faire référence à plusieurs attributs d'un élément, ou même plusieurs fois le même attribut.

Ici, le sélecteur correspond à tous les éléments SPAN dont « bonjour » attribut a exactement la valeur « Cleveland » et dont l'attribut « au revoir » a exactement la valeur « Columbus »:

span[hello="Cleveland"][goodbye="Columbus"] { color: blue; }

En remarque, l'utilisation de guillemets autour d'une valeur d'attribut n'est requise que si cette valeur n'est pas un identifiant valide.

JSFiddle Demo

+2

Y at-il quelque chose comme ceci, mais OU au lieu de ET? –

+1

Vous voulez dire autre chose que ',' (virgule)? – raina77ow

+1

vous ne pouvez pas écrire span [bonjour = "Cleveland"], [au revoir = "Columbus"] mais vous devez répéter une partie (éventuellement longue). –

26

concaténer les sélecteurs d'attributs:

input[name="Sex"][value="M"] 
31

Pour concaténer est:

input[name="Sex"][value="M"] {} 

Et pour prendre ce syndicat est:

input[name="Sex"], input[value="M"] {} 
-2
[class*="test"],[class="second"] { 
background: #ffff00; 
} 
3

Juste pour ajouter qu'il ne devrait pas y avoir d'espace entre le sélecteur et le support d'ouverture.

td[someclass] 

fonctionnera. Mais

td [someclass] 

ne le fera pas.