javascript - 在元素中查找元素的更好方法

标签 javascript jquery domdocument

我正在寻找一种比“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/

相关文章:

javascript - 不褪色的 CSS 不透明度延迟

javascript - jQuery resize() 事件不会在输入调整大小时触发。替代解决方案?

JavaScript 等价于 php DOMDocument 对象

php - 在 PHP 中搜索 HTML 文档

javascript - Angular ui.bootstrap Accordion 和 bootstrap3

javascript - 如何创建 Twitter 小部件?

javascript - 使用 JQuery 从生成的表中检测单击表行

javascript - 轮播元素随机改变位置

javascript - Ajax 调用仅在第一行之后加载数据

php - 使用 PHP 将 HTML 表格解析为数组 - 获取图像属性