如果 <td> 为空,则无法隐藏 <tr>
Posted
技术标签:
【中文标题】如果 <td> 为空,则无法隐藏 <tr>【英文标题】:Cannot hide <tr> if <td> are empty 【发布时间】:2020-10-21 04:40:35 【问题描述】:只有当<td>
没有可用数据时,我才想隐藏<tr>
。我尝试了许多脚本以及 if 条件。但没有运气。请帮忙。
<table class="table table-striped why-choose-tbl" id="insurance">
<thead>
<tr>
<th scope="col"></th>
<th scope="col">Basic</th>
<th scope="col">Comprehensive</th>
</tr>
</thead>
<tbody>
<tr>
<td>Medical</td>
<td><span><?php the_field('basic_medical') ?></span><i class="fas fa-check"></i></td>
<td><span><?php the_field('comp_medical') ?></span><i class="fas fa-check"></i></td>
</tr>
<tr>
<td>Cancellation</td>
<td><span><?php the_field('basic_cancellation') ?></span><i class="fas fa-check"></i></td>
<td><span><?php the_field('comp_cancellation') ?></span><i class="fas fa-check"></i></td>
</tr>
</tbody>
</table>
<script>
$('#insurance tr').filter(function()
return $.trim($(this).text()) === '';
).hide();
// $('#insurance > tbody > tr').has('td:empty').hide()
// $('#insurance > tbody > tr').each(function ()
// if ($(this).find('td').is(':empty'))
// $(this).hide();
//
// );
</script>
我也尝试如下。但他们都没有工作。
<?php
$basic = the_field('basic_medical');
$comp =the_field('comp_medical');
if (empty($basic) && empty($comp))
echo "<td style=/"display:none;/"><i class="fas fa-check"></i><span><?php the_field('basic_medical') ?> </span></td>";
echo "<td style=/"display:none;/"><i class="fas fa-check"></i><span><?php the_field('comp_medical') ?></span></td>";
?>
我可以知道我哪里出错了吗?非常感谢。
【问题讨论】:
与其在生成后隐藏,不如一开始就不要在PHP端生成<tr>
,如果没有数据可以放进去?
你的 PHP if 语句逻辑是倒退的,你在声明:如果变量是空的,回显这个,而不是你应该做相反的事情:if (empty($basic) === false && empty($comp) === false)
并且不要回显`style=/"显示:无;/“`.
【参考方案1】:
如果字段为空,则无需打印整个 <tr>
元素。例如,
<?php
$basic_medical = the_field('basic_medical');
$comp_medical = the_field('comp_medical');
?>
<tbody>
<?php if(!empty($basic_medical) && !empty($comp_medical)): ?>
<tr>
<td>Medical</td>
<td><span><?php the_field('basic_medical')?></span><i class="fas fa-check"></i></td>
<td><span><?php the_field('comp_medical')?></span><i class="fas fa-check"></i></td>
</tr>
<?php endif; ?>
...
...
<tr>
<td>Cancellation</td>
<td><span><?php the_field('basic_cancellation')?></span><i class="fas fa-check"></i></td>
<td><span><?php the_field('comp_cancellation')?></span><i class="fas fa-check"></i></td>
</tr>
</tbody>
【讨论】:
以上是关于如果 <td> 为空,则无法隐藏 <tr>的主要内容,如果未能解决你的问题,请参考以下文章
jQuery 获取<td>标签内容,判断后,隐藏<tr>标签。
如果 <td> 内部有多个 <div>,则 <td> 上悬停效果的 CSS 无法正常工作