我使用以下代码从DOM树中删除元素:
function onItemDeleted(name) {
$("#" + name).remove();
}
这对性能有害,因为我没有指明该元素的任何父级。元素是包含在TABLE元素中的TR。对此元素的DOM搜索将从顶部开始,可能是BODY。它会是这样的:
BODY => DIV => TABLE => TR(找到)
如果我发现TR的父级是TABLE,则搜索结果如下:
表 - > TR
我不知道上面是否真实,因为我认为搜索总是从根节点开始。
答案 0 :(得分:7)
jQuery优化ID搜索。因此,$("#" + name)
实际上与$(document.getElementById(name))
相同。从source,第120行(1.4):
// HANDLE: $("#id")
} else {
elem = document.getElementById( match[2] );
答案 1 :(得分:3)
性能差异可能微不足道。
答案 2 :(得分:0)
我想当你按ID找到元素时,查找时间应该是O(1)
,因为只有一个元素具有该ID。