我正在寻找一种比“find”更好的方法来查找元素中的所有元素:
<table>
<tr>
<td class="test">
Test
</td>
</tr>
<tr>
<td class="test">
Test
</td>
</tr>
<tr>
<td class="test">
Test
</td>
</tr>
</table>
这是结构,我有 jquery 表作为 $table
我愿意做这样的事情:
$table.find('.test');
Find 是一个非常昂贵的调用。我需要一个更好的方法来做到这一点。我知道我可以使用直接选择器来做到这一点,如下所示:
$('table .test');
但我正在寻找性能更好的 find 替代方案。 Find 的性能非常糟糕,尤其是在 IE 中。
最佳答案
您能做的最重要的事情就是改进您正在使用的选择器:
$table.find('td.test');
提供元素名称可以显着加快选择速度。在 IE9 之前的 IE 版本中尤其如此,因为这些版本缺少 getElementsByClassName
方法。
如果您有getElementsByClassName
,这不会提供显着的改进。然而,如果你不这样做,进步将是巨大的。 jQuery 必须选择可能匹配的每个元素,然后测试它是否存在相关的类。如果您提供 td
,它只会测试 td
元素。如果不这样做,它必须测试每个元素,这显然会花费更长的时间。
关于javascript - 在元素中查找元素的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9136043/