我想隐藏/显示表格列
表样本:
<table id="huge-table" border="1">
<caption>A huge table</caption>
<colgroup>
<col class="table-0">
<col class="table-0">
<col class="table-1">
<col class="table-1">
</colgroup>
<thead>
<tr>
<th>h1</th>
<th>h2</th>
<th>h3</th>
<th>h4</th>
</tr>
</thead>
<tbody>
<tr>
<td>1,1</td>
<td>1,2</td>
<td>1,3</td>
<td>1,4</td>
</tr>
<tr>
<td>2,1</td>
<td>2,2</td>
<td>2,3</td>
<td>2,4</td>
</tr>
</tbody>
</table>
很遗憾$(".table-1").hide()
不起作用。
所以我想按类获取列索引并将它们与nth-child
选择器:
indexes = getColumnIndexesByClass("table-1");
for ( var i=0; i<indexes.length; i++ ) {
$('#huge-table td:nth-child(indexes[i])').hide();
}
我该如何实施getColumnIndexesByClass
函数或任何其他等效的解决方案?
EDIT
桌子的大小未知。我只知道班级。
试试这个(使用 Raynos 函数的稍微修改版本)并查看demo http://jsfiddle.net/Mottie/XUpy9/:
function getColumnIndexesByClass(class) {
return $("." + class).map(function() {
return $(this).index() + 1; // add one because nth-child is not zero based
}).get();
}
var indexes = getColumnIndexesByClass('table-1'),
table = $('#huge-table');
for ( var i=0; i<indexes.length; i++ ) {
table.find('td:nth-child(' + indexes[i] + '), th:nth-child(' + indexes[i] + ')').hide();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)