当前位置: 首页 > 知识库问答 >
问题:

如何在php/html中隐藏整个空列

鲁财
2023-03-14

只是想在我的表中隐藏整个空列。

表的代码如下所示:

   <table width="100%" border="1" cellspacing="2" cellpadding="2" id="weatherTable">

 <tr>
<th align="center" valign="bottom" bgcolor="#CCCCCC"><strong>DISPLAYED REPORTS AVERAGES:</strong></th>
<td align="center" valign=bottom><font size="4"><b><strong>--</strong></b></font></td>
<td align="center" valign=bottom><font size="4"><b><?php echo $row["air_temp"]; ?></b></font></td>
<td align="center" valign=bottom><font size="4"><?php echo $row["sea_temp"]; ?></font></td>
</tr>

 <tr>
<th align="center" valign="bottom" bgcolor="#CCCCCC"><strong>Station (ID)</strong></td>
<th align="center" valign="bottom" bgcolor="#CCCCCC"><strong>Time<br>(UTC)</strong></td>
<th align="center" valign="bottom" bgcolor="#CCCCCC"><strong>Air Temp<br>(&deg;C)</strong></td>
<th align="center" valign="bottom" bgcolor="#CCCCCC"><strong>Sea Temp<br>(&deg;C)</strong></td>
 </tr>

 <tr>

 if (($sth-> rowCount())>0) {

foreach (($sth->fetchAll(PDO::FETCH_ASSOC)) as $col) {
?>

<tr>
<td align="right" valign=top><?php echo $col["name"] . " (" . $col["dim_stationID"] . ")"; ?></td>
<td align="center" valign=top><?php $d = $col["date_time"]; $t = explode(" ",$d); $s = explode (":",$t[1]); echo "".$s[0]."".$s[1].""; ?> </td>
<td align="center" valign=top><?php echo $col["air_temp"]; ?></td>
<td align="center" valign=top><?php echo $col["sea_temp"]; ?></td>
</tr>

数据填充在这4列中,每行显示一份报告,我在表的顶部为每列设置了平均值,所以现在最后一列“Sea Temp”为空,如何隐藏整个列?

PS:我在编码

 $('td:empty').each(function(i){
 $(this).hide().parents('weatherTable').find('th:nth-child('+(i+1)+')').hide();
 });

但是代码是隐藏每一个空字段(不希望),例如在“空气温度”列下有三行不同的报告,并且在该列中有一行包含数据,另外两行是空的。逻辑上,这列不应该隐藏由于到整列不是空的。

共有2个答案

宋耀
2023-03-14

试试这个你就完了

function hideEmptyCols(table) {
    var rows = $("tr", table).length-1;
    var numCols = $("th", table).length;
    for ( var i=1; i<=numCols; i++ ) {
        if ( $("span:empty", $("td:nth-child(" + i + ")", table)).length == rows ) {
            $("td:nth-child(" + i + ")", table).hide();
            $("th:nth-child(" + i + ")", table).hide();        }
    }
}
史骏祥
2023-03-14

正如jQuery(由maclema回答)在隐藏表列时所回答的,如果包含的单元格为空,您可以使用如下内容:

var numCols = $("th", table).length;
for ( var i=1; i<=numCols; i++ ) {
    var empty = true;
    //grab all the <td>'s of the column at i
    $("td:nth-child(" + i + ")", table).each(function(index) {
        //check if the td is not empty
        if ( $(this).text() != "" ) {
            empty = false;
            return false; //break out of each() early
        }
    });
    if ( empty ) {
        $("td:nth-child(" + i + ")", table).hide(); //hide <td>'s
        $("th:nth-child(" + i + ")", table).hide(); //hide header <th>
    }
}
 类似资料:
  • 问题内容: 我已经在ASPX中创建了一个表。我想根据要求隐藏其中一列,但是没有像HTML表构建那样的属性。我该如何解决我的问题? 问题答案: 为此,您需要使用样式表。

  • 问题内容: 我正在尝试隐藏.php文件扩展名,但由于某种原因无法使其正常工作。我最近的尝试是: 我尝试了许多在网上找到的各种代码变体,但仍然没有运气。.htaccess文件位于根目录中。 问题答案: 我用了这个:

  • 问题内容: 我有一个包含几列的HTML表,我需要使用jquery实现一个列选择器。当用户单击复选框时,我要隐藏/显示表中的相应列。我想在不将类附加到表中的每个td的情况下执行此操作,是否可以使用jquery选择整个列?以下是HTML的示例。 问题答案: 我想做到这一点而不必在每个td上附加一个类 就个人而言,我会采用“每课时听课/课时/上课”的方法。然后,您可以通过对容器上的className的一

  • 问题:如果距离为空/null,我试图隐藏一个值。 我尝试了以下操作,但该值仍在显示: 和 什么是实现我所期待的正确方法。 以下是我在coldfusion中定义距离的方式: 当我做以下建议时: ng-show="e.distance===未定义" 当我执行其他建议时,例如ng hide=“e.distance”, 以下是提供商包含的内容:

  • 隐藏CardView时如何删除空间?我用android和Firebase做了一个应用程序,我在cardviews中显示Firebase的信息,但当信息不正确时,cardview必须消失。重点是cardview消失了,但仍然在布局中使用了空格,我已经在 setVisibility(GONE)视图变得不可见,但仍然占用空间,但对我来说不起作用。 这是我的布局: 这是mview: 我希望你能帮助我。

  • 问题内容: 我有一些服务器端HTML输出,我无法使用纯CSS来处理,本质上DIV有时适用: 要么 要么 要么 当DIV == 我要删除它。 有任何想法吗? 问题答案: 甚至更好(假设使用jQuery): 编辑:其他答案是好的,但OP想要删除空项目,而不是将其隐藏。