按ID删除HTML元素

aza*_*arp 1 javascript jquery

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

 function onItemDeleted(name) {

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

       }
Run Code Online (Sandbox Code Playgroud)

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

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

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

表 - > TR

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

Jam*_*mes 7

jQuery优化了ID搜索.所以,$("#" + name)实际上是一样的$(document.getElementById(name)).从源头,第120行(1.4):

// HANDLE: $("#id")
} else {
    elem = document.getElementById( match[2] );
Run Code Online (Sandbox Code Playgroud)