【问题标题】:Hide table row if no data如果没有数据,则隐藏表格行
【发布时间】:2014-09-23 22:02:01
【问题描述】:

我在 WordPress 中使用高级自定义字段来创建新的内容类型。在我的模板中,我将文本设置为表格布局,如下所示:

<table class="members">
<thead>
</thead>
<tbody>
 <tr>
  <td>
   <h3>Basic Information</h3>
  </td>
 </tr>
 <tr>
  <td>
   <p><strong>Parent Organization:</strong> <?php the_field('parent_organization'); ?></p>
  </td>
</tr>
</tbody>
</table>

现在,如果网站的成员没有加入他们的父组织,我想隐藏整行。我已经查看了其他几个如何在 jQuery 中执行此操作的示例,但没有任何答案有效。由于我使用的是子主题,因此我在子主题文件夹中添加了一个新的 functions.php 和我自己的 child-theme-custom.js。

三种不同的尝试都不起作用的例子:

$('.members tr').filter(function(){
   return $(this).find('td:eq(1):empty').length > 0;
}).hide(); 

$('.members td').find('td:eq(1):empty').parent().hide();

$('.members > tbody  > tr').has('td:empty').hide()

【问题讨论】:

  • 您可以使用 :empty css 选择器来显示:隐藏;随便你...
  • 你的 JS 很可能在 DOM 准备好之前就运行了……确认一下,在上面的代码之前,添加这一行:alert( $('.members').length )

标签: jquery wordpress advanced-custom-fields


【解决方案1】:

首先,td 不是空的,因为无论 'parent_organization' 是否存在,您都在显示它:

<p><strong>Parent Organization:</strong></p>

因此单元格不为空。看看这个小提琴为你的大脑提供一些燃料:http://jsfiddle.net/mx07d7fz/

另外,最好确保您的 DOM 已准备好,如 user3558931 的评论中所述。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多