2009-07-27 12 views
35

Come posso controllare il valore di visualizzazione di un elementostile JQuery valore di visualizzazione

<tr id="pDetails" style="display:none"> 

mi dà 'display:none'

Voglio scrivere uno script jQuery che mi restituirà solo il valore di visualizzazione che è 'none'

È possibile?

risposta

62

Basta chiamare css con un argomento

$('#idDetails').css('display'); 

Se ho capito la tua domanda. Altrimenti, vuoi la risposta del cleto.

+1

Penso che questo la risposta può essere sbagliata. Scusami se sbaglio, ma penso che '.css()' restituisca lo stile calcolato, che può includere stili ereditati. Penso che l'OP voglia ottenere lo stile in linea. Questa è la cosa difficile da fare! – JotaBe

0

Ciò restituirà ciò che hai chiesto, ma non consiglierei di usare css come questo. Usa CSS esterno invece di css in linea.

$("tr[id='pDetails']").attr("style").split(':')[1]; 
+3

Questo è male perché non generalizza quando l'attributo di stile ha più di una semplice visualizzazione: blah (qualsiasi cosa, come width: 100, verrebbe mixata nello split (':') [1]) –

16

Beh, per prima cosa che il vostro epression può essere semplificata:

$("#pDetails").attr("style") 

poiché ci dovrebbe essere un solo elemento per un dato ID e il selettore ID sarà molto più velocemente di quanto l'attributo id selettore che stai usando.

Se si desidera solo per restituire il valore di visualizzazione o qualcosa del genere, l'uso css():

$("#pDetails").css("display") 

Se si desidera cercare elementi che hanno visualizzazione nessuno, questo è molto più difficile da fare in modo affidabile. Questo è un esempio di massima che non sarà al 100%:

$("[style*='display: none']") 

ma se si desidera solo per trovare le cose che sono nascoste, utilizzare questo:

$(":hidden") 
Problemi correlati