我有这段代码:
$item = $row.find('td[data-id="' + id + '"]');
$ row是对表行的jquery引用。有什么办法可以优化这段代码吗?除非必须,否则我真的不想使用find函数。我想知道我是否可以做类似的事情:
$item = $($row + 'td[data-id="' + id + '"]');
但这似乎不起作用。有什么办法可以改进这段代码吗?在我的代码中,这被多次调用,似乎在IE中引起了问题。
答案 0 :(得分:4)
未使用find
$item = $('td[data-id="' + id + '"]',$row);
虽然.find()
比我建议的更快
答案 1 :(得分:1)
这是尝试和优化的一小段代码。你说它被称为很多次。您应该查看一次调用以提取所需的所有单元格,然后对生成的集合进行操作。一些HTML将有助于确定这是否真的可行。
答案 2 :(得分:0)
在您的特定情况下,您已经有了第一个选择,并希望在该结果中进行搜索
你可以做到
//passing the $row as the context for the selection
$("'td[data-id="' + id + '"]'",row);
或
$row.find('td[data-id="' + id + '"]')
然而前者在通过几个if
之后实际上会调用后者,所以后者总是会胜过前者
使用.find()
在性能方面通常是一件好事。在像
$("table td div")
找到div
,然后根据父母及其父母的父母进行过滤。使用find你可以强制选择从左到右进行评估
$("table").find("td").find("div")
假设您有更多div´'s than
表格的