2009-04-17 19 views
72

Ho un div:Jquery: Come controllare se l'elemento ha certa classe css/style

<div class="test" id="someElement" style="position: absolute"></div> 

C'è un modo per verificare se il determinato elemento:

$("#someElement") 

ha una particolare classe (nel mio caso, "test").

In alternativa, c'è un modo per verificare che un elemento abbia un determinato stile? In questo esempio, mi piacerebbe sapere se l'elemento ha "position: absolute".

Grazie mille!

+14

non è sicuro se it'sd la domanda o la rispondi che è sbagliato, ma la domanda ha style = "test", e la risposta cerca class = "test" – wheresrhys

+1

La mia ipotesi è, la domanda è sbagliata, dal momento che ha contrassegnato la risposta sbagliata come corretta; ma a prescindere, dopo aver visto i voti, penso che molte persone siano inciampate qui cercando la risposta corretta a questa domanda sbagliata ... ehm, se questo ha un senso ... La risposta di DrJokepu, intendo. È per questo che sono qui almeno. – BrainSlugs83

risposta

51
if($('#someElement').hasClass('test')) { 
    ... do something ... 
} 
else { 
    ... do something else ... 
} 
+0

grazie mille. soluzione perfetta – 0100110010101

+56

Questo non risponde alla domanda come richiesto - vedi la risposta di DrJokepu sotto. –

+0

funziona perfettamente per me grazie :) – Rajnikanth

1

ho trovato una soluzione:

$("#someElement")[0].className.match("test") 

ma in qualche modo credo che ci sia un modo migliore!

241

Gli stili CSS sono coppie chiave-valore, non solo "tag". Per impostazione predefinita, a ciascun elemento è assegnato un set completo di stili CSS, la maggior parte di essi utilizza implicitamente le impostazioni predefinite del browser e alcuni di essi vengono esplicitamente ridefiniti nei fogli di stile CSS.

per ottenere il valore assegnato a una determinata voce CSS di un elemento e confrontarlo:

if ($('#yourElement').css('position') == 'absolute') 
{ 
    // true 
} 

Se non è stato ridefinire lo stile, si otterrà il browser predefinito per quel particolare elemento.

+0

wow. non lo sapevo. grazie !! – 0100110010101

+3

Non c'è modo di farlo con un selettore? – BrainSlugs83

+0

con questo si può vedere qual è la proprietà attuale, quello che devo sapere è se questa proprietà viene impostata direttamente o è ereditata da css style/browser ... è possibile? –

12
if ($("element class or id name").css("property") == "value") { 
    your code.... 
} 
0

Oppure, se avete bisogno di accedere l'elemento che ha quella proprietà e non fa uso di un id, si potrebbe seguire questa strada:

$("img").each(function() { 
     if ($(this).css("float") == "left") { $(this).addClass("left"); } 
     if ($(this).css("float") == "right") { $(this).addClass("right"); } 
    }) 
Problemi correlati