2015-07-28 122 views
1

如果product子元素不包含子元素,我想隱藏category子元素。如果它的子div不包含子元素,則隱藏父子元素

這是我的HTML

<div class="fieldset categories"> 
    <h3>1) Category #3</h3> 
    <div class="products"> 
    <div id="product_2509" class="product"> 
     <div class="show"> 
     <label> XYZ </label> 
     <p> Price: <strong> $50 </strong></p> 
     </div> 
    </div> 
    </div> 
</div> 

<div class="fieldset categories"> 
    <h3>2) Category #4</h3> 
    <div class="products"> 
    <div id="product_2510" class="product"> 
     <div class="show"> 
     <label> XYZ </label> 
     <p> Price: <strong> $50 </strong></p> 
     </div> 
    </div> 
    <div id="product_2511" class="product"> 

    </div> 
    </div> 
</div> 

<div class="fieldset categories"> 
    <h3>3) Category #5</h3> 
    <div class="products"> 
    <div id="product_2512" class="product"> 

    </div> 
    <div id="product_2515" class="product"> 

    </div> 
    </div> 
</div> 

<div class="fieldset categories"> 
    <h3>4) Category #6</h3> 
    <div class="products"> 
    <div id="product_2512" class="product"> 

    </div> 
    </div> 
</div> 

如果.product格不包含任何的孩子,然後我需要隱藏fieldset categories股利。 但是,任何fieldset`類別的.product的」包含子,然後我需要顯示父DIV 在上面的例子:

股利我需要隱藏(所有.product不包含子)

1 )範疇#5

2)範疇#6

股利我需要顯示(任何.product的包含子)

1)範疇#3

2)範疇#4(因爲1子包含兒童)

+0

會很樂意幫助,如果能看到你嘗試過什麼至今。 – 2015-07-28 08:57:03

回答

1
$('.categories').hide(); 
$(function(){ 
$(".product").each(function(){ 
    $(this).children('.show').parents('.categories').show(); 
}); 
}); 

$('.categories').hide(); 
$(function(){ 
$(".show").each(function(){ 
    $(this).parents('.categories').show(); 
}); 
}); 

http://jsfiddle.net/vodaaL1d/

1
$(function(){ 
$(".product").each(function(){ 
    if($(this).children().length==0) 
    { 
     $(this).parents(".categories").hide(); 
    } 
}); 

});

+0

你是否檢查過類別#4,因爲它的第一個孩子有孩子,所以不應該隱藏。 –