隐藏空元素的标签

时间:2015-05-17 20:06:34

标签: javascript jquery

我有以下标记,在我的页面上重复了14次。每个部分都略有不同,但包含一个内部/外部标签,其中有一个class =" sectionLabel"。如果紧跟在section标签下的div为空,我需要隐藏section标签。以下是我尝试过的不起作用...它隐藏了所有部分标签。如何只隐藏相应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();
    }
});

3 个答案:

答案 0 :(得分:2)

你可以像这样过滤它

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

请注意,jQuery的$(element).empty()会执行其他操作,它会清空元素,删除所有内容。

答案 1 :(得分:0)

你几乎成功了:

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

答案 2 :(得分:0)

你可以试试这个:

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