我有一个包含多个列的 HTML 表,我需要使用 jQuery 实现列选择器。当用户单击复选框时,我想隐藏/显示表中的相应列。我想在不将类附加到表中的每个 td 的情况下执行此操作,有没有办法使用 jQuery 选择整个列?以下是 HTML 的示例。
<table>
<thead>
<tr><th class="col1">Header 1</th><th class="col2">Header 2</th><th class="col3">Header 3</th></tr>
</thead>
<tr><td>Column1</td><td>Column2</td><td>Column3</td></tr>
<tr><td>Column1</td><td>Column2</td><td>Column3</td></tr>
<tr><td>Column1</td><td>Column2</td><td>Column3</td></tr>
<tr><td>Column1</td><td>Column2</td><td>Column3</td></tr>
</table>
<form>
<input type="checkbox" name="col1" checked="checked" /> Hide/Show Column 1 <br />
<input type="checkbox" name="col2" checked="checked" /> Hide/Show Column 2 <br />
<input type="checkbox" name="col3" checked="checked" /> Hide/Show Column 3 <br />
</form>
原文由 Brian Fisher 发布,翻译遵循 CC BY-SA 4.0 许可协议
就个人而言,我会采用 class-on-each-td/th/col 方法。然后,您可以使用对容器上的 className 的单次写入来打开和关闭列,假设样式规则如下:
这将比任何 JS 循环方法都快;对于非常长的表,它会对响应能力产生重大影响。
如果你可以摆脱不支持 IE6,你可以使用邻接选择器来避免必须将类属性添加到 tds。或者,如果您关心的是使标记更清晰,您可以在初始化步骤中从 JavaScript 自动添加它们。