Javascript 提高我的jQuery选择器的性能-删除jQuery.find的使用
我有以下代码:Javascript 提高我的jQuery选择器的性能-删除jQuery.find的使用,javascript,jquery,Javascript,Jquery,我有以下代码: $item = $row.find('td[data-id="' + id + '"]'); $row是对表行的jquery引用。有什么方法可以优化此代码吗?我真的不想使用find函数,除非我必须这样做。我想知道我是否可以做一些类似的事情: $item = $($row + 'td[data-id="' + id + '"]'); 但这似乎不起作用。有什么方法可以改进这段代码吗?在我的代码中,这被多次调用,似乎在IE中导致了问题。没有明确使用find 虽然.find()比我建
$item = $row.find('td[data-id="' + id + '"]');
$row是对表行的jquery引用。有什么方法可以优化此代码吗?我真的不想使用find函数,除非我必须这样做。我想知道我是否可以做一些类似的事情:
$item = $($row + 'td[data-id="' + id + '"]');
但这似乎不起作用。有什么方法可以改进这段代码吗?在我的代码中,这被多次调用,似乎在IE中导致了问题。没有明确使用find
虽然.find()
比我建议的要快
不显式使用find
虽然.find()
比我建议的要快
这是一段非常小的代码,需要尝试和优化。你说它叫了很多次。您应该考虑进行一次调用以提取所需的所有单元格,然后对生成的集合进行操作。一些HTML将有助于了解这是否真的可行。这是一段非常小的代码,需要尝试和优化。你说它叫了很多次。您应该考虑进行一次调用以提取所需的所有单元格,然后对生成的集合进行操作。一些HTML将有助于查看这是否真的可行。在您的特定情况下,您已经有了第一个选择,并且希望在该结果中进行搜索 你可以这样做
//passing the $row as the context for the selection
$("'td[data-id="' + id + '"]'",row);
或
但是,前者在通过几个if
s之后实际上会调用后者,因此后者的性能总是优于前者
在性能方面,使用.find()
通常是一件好事。在复合选择器中,例如
$("table td div")
将找到div
,然后根据其父项及其父项的父项进行筛选。使用“查找”可以强制选择从左向右求值
$("table").find("td").find("div")
如果您的
div´多于表`,则后者的执行速度会更快。在您的特定情况下,您已经有了第一个选择,并且希望在该结果中搜索
你可以这样做
//passing the $row as the context for the selection
$("'td[data-id="' + id + '"]'",row);
或
但是,前者在通过几个if
s之后实际上会调用后者,因此后者的性能总是优于前者
在性能方面,使用.find()
通常是一件好事。在复合选择器中,例如
$("table td div")
将找到div
,然后根据其父项及其父项的父项进行筛选。使用“查找”可以强制选择从左向右求值
$("table").find("td").find("div")
如果您的div多于table`,那么后者的执行速度会更快。我们可以看到它所使用的HTML吗?我原以为使用.find
比以某种方式组合选择器会更好。如果您只使用一个选择器,它将搜索整个文档,而通过使用.find
,您将搜索空间限制为仅一行。为什么您认为.find()
是一个问题?您所说的“似乎导致了问题”是什么意思?我们可以看到它所使用的HTML吗?我原以为使用.find
比以某种方式组合选择器的效果更好。如果您只使用一个选择器,它将搜索整个文档,而通过使用.find
,您将搜索空间限制为仅一行。为什么您认为.find()
是一个问题?你所说的“似乎引起了问题”是什么意思?这不是导致了幕后的.find()
吗?@nnnnnn是的,这是find速度更快的部分原因。这不是导致幕后的.find()
吗?@nnnnnn是的,这是find速度更快的部分原因