Il metodo JQuery css
, quando somministrato un solo parametro, restituirà il valore per il dato paramenter. Si può provare questo:
var color = $('.box').css('background-color');
if (color == 'rgb(0, 0, 255)' || color == 'blue') // =='blue' <- IE hack
alert("it's blue!\nColor detected: " + color);
L'esempio sopra riportato funziona solo per il primo elemento nel selettore jQuery, quindi si dovrebbe utilizzare il metodo JQuery .each
per scorrere l'intero selettore se si dispone di più di un elemento in esso .
Si noti che il metodo JQuery .css
restituisce una combinazione RGB nella maggior parte dei browser (tranne IE), pertanto il test su una stringa come blue
non è sufficiente per i browser non IE. Puoi verificarlo nello JQuery API site e nello my fiddle.
Ed ecco con il corretto .each
di iterazione:
$('.box').each(function(i){
var color = $(this).css('background-color');
if (color == 'rgb(0, 0, 255)' || color == 'blue') // =='blue' <- IE hack
alert("div " + i + " is blue!\nColor detected: " + color);
});
JSFiddle
Edit: oltre un anno e mezzo più tardi, mi sento come se questa risposta merita un aggiornamento .
Per la maggior parte i casi d'uso, mi consiglia di utilizzare una classe CSS:
.blue {
color: blue;
}
Questo permette l'utilizzo dei addClass()
, removeClass()
, toggleClass()
metodi per la manipolazione, così come per il controllo hasClass()
:
if ($('#myElem').hasClass('blue')) {
//it has the .blue class!
}
Questo funziona perfettamente in tutti i browser senza bisogno di hack, e come un vantaggio si ottiene una migliore separazione delle preoccupazioni - cioè, se lo stile cambia, per esempio .blue { color: lightblue; }
, il JS continuerà a funzionare senza modifiche.
Nota: questo approccio non è adatto per un paio di casi di utilizzo rari in cui il valore del colore viene generato dinamicamente (ad esempio utilizzando Math.random()
o prelevando un valore di colore da un pixel di tela), in questi rari casi d'uso è ancora possibile usa la prima soluzione in questa risposta.
O in questo modo '$ ($ ('. Box') [3]). Css()' per scegliere il * quarto * elemento che corrisponde. –
Oh capisco. Ciò funzionerà per la selezione di un singolo elemento. –
Aggiunta la nota RGB, l'iterazione '.each' e l'esempio. –