2015-05-17 109 views
0

我有以下標記,它在我的頁面上重複了14次。每個部分都有所不同,但包含一個內部/外部標籤,其中包含class =「sectionLabel」。如果緊接在部分標籤下的div是空的,我需要隱藏部分標籤。以下是我嘗試過的不起作用...它隱藏了所有部分標籤。我怎樣才能隱藏相應的div沒有任何孩子的部分標籤?隱藏空元素的標籤

<div class="column1"> 
    <span id="internalOutputsLabel1" class="sectionLabel">Internal Outputs</span> 
    <div id="internalOutputStrategicPlanningPhase1" class="linkHolder"> <!-- If empty, hide the label above --> 
    </div> 

    <span id="externalOutputsLabel1" class="sectionLabel">Extenal Outputs</span> 
    <div id="externalOutputStrategicPlanningPhase1" class="linkHolder"> <!-- If empty, hide the label above --> 
    </div> 
</div> 

我已經試過:

$(".linkHolder").each(function (i) { 
    if ($(this).empty) 
    { 
     $(".sectionLabel").hide(); 
    } 
}); 

回答

2

您可以只過濾像這樣

$('.sectionLabel').filter(function() { 
    return $(this).next('.linkHolder').is(':empty') 
}).hide(); 

注意,jQuery的$(element).empty()做了別的事情,它倒空了e元素,刪除它的所有內容。

+0

謝謝,但不幸的是它不工作。我創建了一個小提琴,所以你可以看到,也許看到爲什麼。 [小提琴](https://jsfiddle.net/9ee6gyex/1/) – Wannabe

+0

在小提琴中包含jQuery幫助 - > ** https://jsfiddle.net/9ee6gyex/3/** – adeneo

+0

是的,它確實:)謝謝你,工作。 – Wannabe

0

你幾乎做到:

$(".linkHolder").each(function (i) { 
    if ($(this).html() == '') 
    { 
     $(this).prev().hide(); 
    } 
}); 
+0

謝謝,但不幸的是,這是行不通的。我創建了一個小提琴,所以你可以看到,也許看到爲什麼[小提琴](http://jsfiddle.net/9ee6gyex/2/) – Wannabe

0

你可以試試這個:

$(document).ready(function() { $('div:empty').remove(); });