按ID删除HTML元素

时间:2010-02-14 17:59:00

标签: javascript jquery

我使用以下代码从DOM树中删除元素:

 function onItemDeleted(name) {

           $("#" + name).remove();                       

       }

这对性能有害,因为我没有指明该元素的任何父级。元素是包含在TABLE元素中的TR。对此元素的DOM搜索将从顶部开始,可能是BODY。它会是这样的:

BODY => DIV => TABLE => TR(找到)

如果我发现TR的父级是TABLE,则搜索结果如下:

表 - > TR

我不知道上面是否真实,因为我认为搜索总是从根节点开始。

3 个答案:

答案 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。