如果没有段落,请隐藏div

时间:2014-05-13 17:11:20

标签: php jquery

所以我有几个div,我分配了一个类。每个div都有一个标题。每个标题下面的内容都是通过php动态生成的。一年中的某些时候这些div不包含任何信息,但标题仍然显示。我想隐藏里面没有任何段落的div我不能让它们工作,我觉得它与php生成的段落有关。

实施例

<div class="technology_connected article_headers"> 
  <h3>TECHNOLOGY CONNECTED</h3> 
  <?php echo $tools->article_formatter($articles, 'Technology Connected'); ?>
</div> 

这是我的Jquery代码。

$(document).ready(function() {
    $(".article_headers").each(function() {
      if ($(this).find("p").length > 0) {
         $('.article_headers').show();
       }
    });

});

2 个答案:

答案 0 :(得分:1)

试试这个:

$(document).ready(function() {
    $(".article_headers").each(function() {
      if ($(this).find("p").length > 0) {
         $(this).show();
       }else{
         $(this).hide();
       }
    });
});

<强> DEMO

答案 1 :(得分:0)

如上面@JasonP所述,这确实应该在服务器端完成。但是,由于您确实希望它在服务器端完成,因此您可以大大简化该过程。正如您所做的那样生成数据服务器端。确保所有<div>标记都可见。然后在您的JavaScript中使用以下选择器:

// Shorthand for $(document).ready(function() { ... });
$(function () {
    $('.article-headers:not(:has(p))').hide();
});

上面的选择器定位所有不包含.article-headers标记的类<p>的元素并隐藏它们。

JSFiddle 将上述内容演示为切换按钮,以显示或隐藏无段落部分。