用jquery隐藏div为空

时间:2014-11-19 12:50:44

标签: jquery

这段代码属于一个发布文章的joomla模块。问题是在这个div里面

<div class="ns2-row <?php echo $j==0 ? 'ns2-first' : '' ?> <?php echo $j%2 ? 'ns2-even' : 'ns2-odd' ?>">

它发布了这篇文章和另外4个完全空的div。 Theese div正在从css获得填充+边界。 (他们使用与文章相同的类,所以我不能只显示:没有他们。)我不喜欢输出,我想删除任何空的div。我今天第一次触摸jquery是今天,经过一些搜索我到达以下代码似乎不起作用。 我只粘贴了我想编辑的代码块。

<div class="ns2-page <?php echo $anim_class; ?>">
  <div class="ns2-page-inner">
  <?php for($j=0;$j<$article_row;$j++, $i++): ?>
    <div class="ns2-row <?php echo $j==0 ? 'ns2-first' : '' ?> <?php echo $j%2 ? 'ns2-even' : 'ns2-odd' ?>">
        <div class="ns2-row-inner">
        <script>
        $('div').filter(function () {
        return $.trim($(this).html()).length == 0;
        }).hide();
        </script>

我尝试了它并且return $.trim($(this).text()) === '';但也没有发生任何事情?我做错了什么?

2 个答案:

答案 0 :(得分:1)

你不能这样做:

$('div:empty').hide();

@ jQuery docs for :empty selector-

选择所有没有子元素的元素(包括文本节点)。

答案 1 :(得分:0)

$('div').each(function(){
  if(!$(this).children().length){
   $(this).hide();
  }

});

 $('div').filter(function(){
    $(this).children().length==0;
 }).hide();