我有三个列,每个列都包含一个DIV。这些DIV充满了数据,但偶尔会发生,这些DIV是空的,在这种情况下,它们弄坏了我的布局。现在我想检查DIV是否填充了数据(html),如果没有,则删除它们。我做了一些陈述,但我相信这可以做得更顺利。
这是我的js代码:

if ($.trim($(".fcol1").html()) =='') {
   $(".fcol1").remove();
}

if($.trim($(".fcol2").html()) == '') {
   $(".fcol2").remove();
}

if($.trim($(".fcol3").html()) == '') {
   $(".fcol3").remove();
}

那么,有没有办法缩短这个代码?

最佳答案

如果它们真的是空的,你可以:

$(".fcol1:empty, .fcol2:empty, .fcol3:empty").remove();

……但如果它们甚至有一个空白的文本节点,那就行不通了。你可以:
$(".fcol1, .fcol2, .fcol3").filter(function() {
    return !$.trim(this.innerHTML);
}).remove();

注意,原始代码只检查与选择器匹配的第一个元素,如果其中一个元素为空,则删除所有匹配的元素,无论它们是否为空。例如,如果第一个.fcol1为空,则删除所有.fcol1s。(也许你每个人只有一个……)

10-05 22:00