2011-11-29 17 views
7

哲学バブルは、共有ポイントコントロールを内部に持つ見積り/吹き出しのdivスタイルのようなもので、ユーザーがページを編集している間にコンテンツを入力できるようにするrichHtmlFieldですが、 、divにはコンテンツがありませんので、バブルだけがページに表示され、面白そうに見えるので、ユーザー入力がない場合、またはdivが空の場合にdiv全体を非表示にしたいですか?あなたはjqueryでこれをどのようにしていますか?コンテンツが空の場合divを非表示にする

<div class="philosophy-bubble"> 
<PublishingWebControls:RichHtmlField FieldName="carephilosophy" runat="server"></PublishingWebControls:RichHtmlField> 
</div> 

答えて

19

使用jQueryのセレクタ:empty

$('.philosophy-bubble:empty').hide(); 

ここa working fiddleです。

代替

また、すべてのdivの空と非表示を見つけるためにfilter()機能を使用することができます。

//All divs 
$('div').filter(function() { 
     return $.trim($(this).text()) === '' 
}).hide() 

//div's with a certain class 
$('.philosophy-bubble').filter(function() { 
     return $.trim($(this).text()) === '' 
}).hide() 

//div with a specific ID 
$('#YourDivID').filter(function() { 
     return $.trim($(this).text()) === '' 
}).hide() 

..etcを。

注::emptyセレクタがより効率的になります。 See jsPerf。以下のような

+0

特定のクラスの別のDIVがない場合にのみ、私のDIVは空です:http://stackoverflow.com/questions/26845161/how-to-hide-a-div-if-content-are-missing。自分のコードに同じものをどのように適用できますか?ありがとう。 – Si8

-1
var myDiv = $('#myDiv'); 

if (myDiv.text() == '') 
{ 
    myDiv.hide(); 
}