2014-06-09 18 views
6

Sto provando a verificare se uno stile in linea è già stato applicato da jQuery.Controlla se la larghezza massima è impostata, in jQuery?

Normalmente, vorrei fare qualcosa di simile:

if ($(this).css('max-width') == '20%') {}

Tuttavia, non so la percentuale. Qual è il modo migliore per verificare se è applicato lo alla larghezza massima?

risposta

5

Per impostazione predefinita .css('max-width') tornerà "none" se non max-width è stata definita, in modo dalla seguente condizione dovrebbe fare il lavoro:

if ($(this).css('max-width') !== 'none') { ... } 

Se è necessario verificare la presenza di stile in linea solo, il che significa che si ignorare la proprietà CSS max-width originale (ad esempio dal file del foglio di stile), è possibile effettuare le seguenti operazioni:

if (this.style.maxWidth !== '') { ... } 

... come pura maxWidth proprietà di style sarà vuoto "" se la proprietà CSS non è stata impostata.

+1

OP dice 'stile in linea', sarebbe questo non controllare non stile in linea? – Reigel

+0

@Reigel Giusto abbastanza. Aggiornato la risposta con la descrizione corrispondente. – VisioN

+0

Perfetto! Qual è la differenza tra '$ (this)' e 'this', è il primo oggetto esclusivo di jQuery? –

2
if ($(this).css('max-width')!='none') { } 
2

Se su un elemento la proprietà max-width non viene applicata, restituirà none. Prova a controllare none

$(this).css('max-width') =='none' 

O

if($('#element').css('max-width') =='none') { 
// max-width not EXISTS 
} 
else 
{ 
// max-width EXISTS 
} 

Controllo solo il inline style:

if($('#element').attr('style') != 'undefined'){ 
if($('#element').attr('style').indexOf('max-width') == -1) { 
    // max-width not EXISTS 
} 
else 
{ 
    // max-width EXISTS 
} 
} 
else 
{ 
    // Inline style not EXISTS 
} 

O

vi consiglio di usare il selettore Jquery Attribute Contains Word Selector

$('div[style ~= "min-width:"]') 

Working Fiddle

+0

un altro modo per ottenere uno stile in linea è l'uso della pura proprietà 'style' di JS (' style.maxWidth'). Normalmente dovrebbe restituire lo stile inline, altrimenti restituisce vuoto, quindi dobbiamo usare 'getComputedStyle' o il metodo jQuery' css' per ottenere lo stile impostato nel file CSS. –

+0

@KingKing: Sì, questo è puro JS, E se vogliamo usare Jquery, potremmo usare i selettori di Jquery. (Si prega di consultare la risposta aggiornata) :) –

Problemi correlati