javascript - 根据 HTML 中的类显示/隐藏行

标签 javascript html css

假设我有一个 HTML 格式的数据表,每一行都有,比方说,三个可能的类之一:RowA、RowB 和 RowC;代表行中的信息。 (例如,小型、中型和大型汽车)。

在表格上方,我有 3 个复选框:“显示小型汽车”、“显示中型汽车”、“显示大型汽车”。

如果用户取消选择“显示小型汽车”,则包含小型汽车的行应该消失。

我会这样做:

function showHideRows(classToShowOrHide, checkBoxSender)
{
  var tableObj = document.getElementById("myDataTable");

  for (i = 0; i < tableObj.childNodes.length; i++)
    if (tableObj.childNodes[i].className == classToShowOrHide)
      tableObj.childNodes[i].style.display = checkBoxSender.checked ? "visible" : "none";
}

有没有更好的方法?例如,我可以使用 javascript 修改 css 类以包含/排除 display: none 吗?

我没有使用 jQuery。

最佳答案

如果您这样定义标记/样式:

<table class="showSmallCars showMediumCars">
  <tr class="smallCar">...<tr>
  <tr class="mediumCar">...<tr>
</table>

CSS:
table tr { display:none; }
table.showSmallCars tr.smallCar { display:table-row; }
table.showMediumCars tr.mediumCar { display:table-row; }

然后你就可以修改表的类属性来呈现你需要的组的记录: 因此 <table class="showSmallCars showMediumCars">将展示小件和中件 和 <table class="showSmallCars showMediumCars showLargeCars">将显示所有这些。

并且无需扫描脚本中的所有行。

关于javascript - 根据 HTML 中的类显示/隐藏行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7355863/

相关文章:

javascript - 单击屏幕的 iframe 部分时捕获 body onclick() 事件以检测触摸屏的最佳方法

html - 浏览器缩放时无法修复 slider 移动距离

css - Logo 顶部的导航栏层

CSS:前一个 DIV 中的高度使用 Clear:Both 向下推页脚

javascript - 如何将Json数据插入Html Div中?

javascript - 如何使用 JavaScript 移动游戏屏幕上的项目?

javascript - 通过复选框选中时如何将行从 BootstrapTable 复制到另一个 Html 表?

html - CSS - HTML 如何使 anchor 图像转到特定位置

html - 使用对象时div区域不想显示

javascript - 如何使最后一行表现正常,直到到达视口(viewport)末尾,然后在 AgGrid 中充当 float 行?