页面加载时的 JavaScript 删除空表行

标签 javascript html css

所以我有这个包含空单元格和空行的 html 表格。 我的目标是删除所有带有空单元格的表格行。 html代码示例:

<table id="7">
<tr>
<td>Name</td>
<td>Type</td>
<td>Parent</td>
<td>Time</td>
</tr>
<tr>
<td>something1</td>
<td>something1</td>
<td>something1</td>
<td>something1</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>something3</td>
<td>something3</td>
<td>something3</td>
<td>something3</td>
</tr>

不幸的是,表格是计算机生成的,我不确定它是否为空,或者它是否有一些空格,例如制表符或换行符。当我打开 html 文件时,我看到的只是一个空单元格或空单元格在浏览器中。

我找到了一些 javascript 代码,但由于我是 javascript 的新手,我无法修改它以使其适用于我的 html 代码。 what i found so far

有人能帮帮我吗?


这是实际输出(带有更改的文本):

<table id="2">
<tr class="head_tbl">
<td class="head_inf">Type</td>
<td class="head_inf">Version</td>
<td class="head_inf">Build</td>
<td class="head_inf">Update</td>
<td class="head_inf">Patch</td>
<td class="head_inf">OS IP Address</td>
<td class="head_inf">Language</td>              
</tr>               
<tr class="body_tbl">
<td>SoemthingOS
</td>
<td>Something.version
</td>
<td>Something.build
</td>
<td>something.update
</td>
<td>something.patch
</td>
<td>something.ip
</td>
<td>something.language
</td>
</tr>
<tr class="body_tbl">
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>

所以是的..我认为输出时会有一个新行,即使 td 中没有实际输出。我这么说是因为当脚本被制作成在一个表中获取操作系统输出时,它是这样的:

<table id="2">
<tr class="head_tbl">
<td class="head_inf">Type</td>
<td class="head_inf">Version</td>
<td class="head_inf">Build</td>
<td class="head_inf">Update</td>
<td class="head_inf">Patch</td>
<td class="head_inf">OS IP Address</td>
<td class="head_inf">Language</td>              
</tr>               
<tr class="body_tbl">
<td>$(var1)</td>
<td>$(var2)</td>
<td>$(var3)</td>
<td>$(var4)</td>
<td>$(var5)</td>
<td>$(var6)</td>
<td>$(var7)</td>
</tr>
<tr class="body_tbl">
<td>$(var8)</td>
<td>$(var9)</td>
<td>$(var10)</td>
<td>$(var11)</td>
<td>$(var12)</td>
<td>$(var13)</td>
<td>$(var14)</td>
</tr>

当输出完成时,end-td 换行。 进一步澄清脚本。 从本质上讲,它是一个 shell 脚本,在 ESXi 上运行,获取操作系统信息($var1、$var2 等)并创建一个包含表格和操作系统信息的 html 文件……等等。 当用在 $var1 上的命令没有输出时,它给出一个“空”变量。但我的猜测是它不是空的,它有一个换行符或空格。

最佳答案

如果tds真的是空的,就是一个简单的选择器和循环

window.addEventListener('load', function() {
  var tds = document.querySelectorAll('table tr td:first-child:empty')
  tds.forEach(function (td) {
    td.parentNode.setAttribute('hidden', 'hidden')
  })
})
td {
  border: 1px dotted black;
}
<table id="7">
  <tr>
    <td>Name</td>
    <td>Type</td>
    <td>Parent</td>
    <td>Time</td>
  </tr>
  <tr>
    <td>something1</td>
    <td>something1</td>
    <td>something1</td>
    <td>something1</td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td>something3</td>
    <td>something3</td>
    <td>something3</td>
    <td>something3</td>
  </tr>
  <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
</table>

关于页面加载时的 JavaScript 删除空表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51841143/

相关文章:

javascript - 基本 react native 应用程序中的高内存消耗

javascript - 如何比较数组中的日期以找到最早的日期?

html - 无输入时边框颜色变化

html - 在文本不受不透明度影响的情况下创建图像悬停效果

css - 根据屏幕分辨率更改 TD 字体大小

html - 背景大小在 IE11 中不起作用

javascript - JavaScript 中的 XML 全路径解析

java - struts 2 中第二次 Action 不再触发

javascript - 如何将信息输入到一系列表格中并显示该信息?

php - 使用 PHP 应用的导航栏如何让它在我的每个页面上看起来略有不同?