2015-05-17 72 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(); });