下午好!
如何使用复选框隐藏表格的所有行,其中的列仅包含零?
到目前为止,我想到了一个选项,其中所有空行都有一个类< tr class="zero">并随着帮助而js改变style,但同时整个表格浮动 - 单元格变得不同宽度。
最初,我自己创建表,因此可以设置类和样式。
//js файл
function toggle() {
var rows = document.getElementsByClassName('zero');
for (var i = 0; i < rows.length; i++) {
if (this.checked)
rows[i].style.display = 'block';
else
rows[i].style.display = 'none'
}
}
document.getElementById('chkTest').onchange = toggle;
<input type="checkbox" id="chkTest" />
<label for="chkTest">Hide all zero rows</label>
<table>
<tr class="zero">
<td>Ivanov</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>Petrov</td>
<td>1</td>
<td>2</td>
<td>0</td>
<td>9</td>
<td>8</td>
<td>0</td>
</tr>
<tr class="zero">
<td>Sidorov</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr class="zero">
<td>Morozov</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>Tosterov</td>
<td>2</td>
<td>1</td>
<td>5</td>
<td>0</td>
<td>0</td>
<td>1</td>
</tr>
</table>
在网上找到了这个方法。我刚开始学习 JS。
PS 对所有选项都感兴趣,但请强调如何做以及哪些方法工作得更快。
该表是近似值,实际上该表包含数百行。
提前致谢。
display- CSS 中的 Janus。对于
trhetable-row,所以你的代码有效,你只需要display正确设置它:问题中的实现是浮动的,因为你正在做
应设置表行
display: table-row;作为在循环中遍历所需行并手动设置可见性的替代方法,您可以为容器(例如表)设置一个类,并在 css 中指定此类中类为零的元素将具有
display:none.在这种情况下,可见性控制是通过向容器添加/删除类来控制的
例子:
无论浮动什么,您都可以
display更改visibility:有点拐杖,但工作。