2013-09-06 13 views
5

Mam następujące HTML:Jak ukryć element HTML zawierający tylko spacje za pomocą jQuery?

<div id="rightCon"> 




        </div> 

A potem mam następujący skrypt na górze:

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

Dlaczego div nie ukrywa? Widzę, że jest trochę przestrzeni (których nie mogę się pozbyć), ale czy to naprawdę ma znaczenie? Jak usunąć/ukryć ten element div, gdy jest pusty i zawiera tylko spacje?

Odpowiedz

4

To rozwiązało problem.

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

To jest droga! dobre stare wykończenia ..;) – Sebsemillia

+0

Dziękuję bardzo :) –

6

Wygląda na to, że Twój element ma spore białe spacje, które nadają mu węzeł tekstowy. Z tego powodu nie będzie on dopasowywany przez :empty.

Można spróbować znalezienia elementu i sprawdzenie jego zawartość wyraźnie:

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

Jaki byłby rezultat twojego kodu? – Lucio

+0

Ukryje element tylko wtedy, gdy funkcja '.filter()' uzna, że ​​element zawiera tylko białą przestrzeń. – Pointy

+0

+1 - w przypadku fragmentu kodu, którego moja odpowiedź nie zawiera. –

1

Twój div nie jest faktycznie empty (zawiera spacje). Tak więc selektor $("#rightCon:empty") nigdy nie oceni i nie ukryje div.

Od HTML elementy powinny być unikalne, można bezpiecznie założyć, że można wybrać właściwy element, poprzez:

var rightCon = $("#rightCon"); 

Następnie można ukryć element poprzez:

right.hide(); 

Albo

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

ok, ale jak mogłem to ukryć, gdy tak wygląda? – Banshee

+0

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

+0

@SnowJim Z '$ ('# rightCon'). Hide();' zrobiłbyś to. – Lucio

Powiązane problemy