2016-10-07 9 views
4

ネストされたdivが空の場合(ホワイトスペースノードを含む)、外側のdivを非表示にしようとしています。私は空白が存在しない場合に機能するソリューションを見つけた: Hide parent DIV if <li> is Emptyネストされたdivが空の場合は、親ディビジョンを非表示にします。

ホワイトスペースが存在したとき、私はそれを動作させる必要がある、すなわち:

<div class="gen-customer"> 
    <div class="wrapper"> 
     <div class="heading">Hidden if working 1</div> 
     <div class="content"> 
     <div class="product"> </div> 
    </div> 
    </div> 
</div> 

Example fiddle

答えて

2

Working fiddle

あなたは:empty:contain()セレクタの両方を使用することができます。

$("div.product:contains(' '), div.product:empty").closest('div.wrapper').hide()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="gen-customer"> 
 
    <div class="wrapper"> 
 
    <div class="heading">Hidden if working 1</div> 
 
    <div class="content"> 
 
     <div class="product"> </div> 
 
    </div> 
 
    </div> 
 
</div> 
 

 
<div class="gen-customer"> 
 
    <div class="wrapper"> 
 
    <div class="heading">Visible if working 2</div> 
 
    <div class="content"> 
 
     <div class="product">text</div> 
 
    </div> 
 
    </div> 
 
</div> 
 

 
<div class="gen-customer"> 
 
    <div class="wrapper"> 
 
    <div class="heading">Hidden if working 3</div> 
 
    <div class="content"> 
 
     <div class="product"></div> 
 
    </div> 
 
    </div> 
 
</div>

+1

これは素晴らしい作品!その他のrawsersも同様に働いた。私もトリム方法に向かっていたが、このjusは私の元の質問に近いと思われる。ありがとう – caseyz

0

// Jqueryを使用して試してください

<script> 

    //A perfect reference in Jquery... 
    var element=$('#target_child'); 
    if($(element).html()==''){ 
     $(element).parent().hide() 
    }else{ 
     //do some work 
    } 

</script> 
このことができます

$("div.product:contains(' '), div.product:empty").closest('div.wrapper').hide(); 

希望:

1

あなたは、各div.productを反復して空白を削除するテキストをトリミングすることができます。残っているものがあればそれを表示し、そうでなければそのラッパーを隠す。

$("div.product").each(function() { 
 
    if ($(this).text().trim() == '') { 
 
    $(this).closest('div.wrapper').hide() 
 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="gen-customer"> 
 
    <div class="wrapper"> 
 
    <div class="heading">Hidden if working 1</div> 
 
    <div class="content"> 
 
     <div class="product"></div> 
 
    </div> 
 
    </div> 
 
</div> 
 

 
<div class="gen-customer"> 
 
    <div class="wrapper"> 
 
    <div class="heading">Visible if working 2</div> 
 
    <div class="content"> 
 
     <div class="product">text</div> 
 
    </div> 
 
    </div> 
 
</div> 
 

 
<div class="gen-customer"> 
 
    <div class="wrapper"> 
 
    <div class="heading">Hidden if working 3</div> 
 
    <div class="content"> 
 
     <div class="product"></div> 
 
    </div> 
 
    </div> 
 
</div>

関連する問題