2013-09-06 10 views
5

Ho il seguente codice HTML:Come nascondere l'elemento HTML che contiene solo spazi usando jQuery?

<div id="rightCon"> 




        </div> 

E poi ho il seguente script in alto:

$('#rightCon:empty').hide(); 

Perché le div non nascondendo? Posso vedere che ci sono degli spazi (che non riesco a sbarazzarmi) ma importa davvero? Come posso rimuovere/nascondere questo div quando è vuoto con solo spazi?

risposta

4

Questo ha risolto il problema.

$(document).ready(function() { 
       if($('#rightCon').text().trim().length < 1) 
       {$('#rightCon').hide();} 
      }); 
+0

questa è la strada da percorrere! buon vecchio assetto ..;) – Sebsemillia

+0

Grazie mille :) –

6

Il tuo elemento sembra avere un po 'di spazio bianco, che gli darà un nodo di testo. Per questo motivo non verrà corrisposto da :empty.

Si potrebbe provare a trovare l'elemento e controllando il suo contenuto esplicitamente:

$('#rightCon').filter(function() { 
    var text = $(this).text().replace(/\s*/g, ''); 
    return !text; 
}).hide(); 
+0

Quale sarebbe il risultato del codice? – Lucio

+0

Nasconde l'elemento solo se la funzione '.filter()' pensa che l'elemento non contenga altro che lo spazio bianco. – Pointy

+0

+1 - per lo snippet di codice che la mia risposta non include. –

1

tuo div non è in realtà empty (Contiene spazi bianchi). Quindi il selettore $("#rightCon:empty") non valuterà mai e nasconde lo div.

Dal HTML elementi dovrebbero essere unico, si può tranquillamente supporre che sia possibile selezionare l'elemento corretto tramite:

var rightCon = $("#rightCon"); 

È quindi possibile nascondere l'elemento tramite:

right.hide(); 

O

$("#rightCon").hide(); 
+0

ok, ma come potrei nasconderlo quando sembra così? – Banshee

+0

$ ("# rightCon"). Hide(); –

+0

@SnowJim Con '$ ('# rightCon'). Hide();' lo faresti. – Lucio

Problemi correlati