所以我有几个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();
}
});
});
答案 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 将上述内容演示为切换按钮,以显示或隐藏无段落部分。