jquery隐藏表列,nth-child性能缓慢?

时间:2012-02-06 05:50:36

标签: jquery css-selectors

我有一个相当大的html表,我正在使用jtemplates动态添加新行。添加行时,我需要根据bool标志显示/隐藏列。这段代码$('#tableid td:nth-child(3)').hide();可以完成工作,但是我可以看到该列在它消失之前一瞬间显示(并且表格看起来很不稳定)。如何让它更快?

我尝试使用$('#tableid td:eq(2)').hide();,但它只隐藏了第一行的列。有没有办法可以加快速度,让隐藏/表演顺畅?

1 个答案:

答案 0 :(得分:1)

尝试提供您需要切换特定类的列的单元格...

<table id="tableid">
    <tr>
       <td>...</td> <td>...</td> <td class="toggle">...</td> <td>...</td>
    </tr>
    <tr>
       <td>...</td> <td>...</td> <td class="toggle">...</td> <td>...</td>
    </tr>
    <tr>
       <td>...</td> <td>...</td> <td class="toggle">...</td> <td>...</td>
    </tr>
</table>

...然后把它藏在你的CSS中......

#tableid.hide_col td.toggle {
    display:none;
}

所以现在唯一需要的JavaScript是将类添加到表中。

$('#tableid').addClass('hide_col')

这使得浏览器可以用最少的JavaScript开销来隐藏/显示。