自定义javascript document.getElementById()方法?

时间:2012-11-29 07:14:37

标签: javascript getelementbyid

我尝试了一个自定义的getElementById()方法来从HTML页面中检索DOM元素。这是定义。

document.customGetElById = function(passedId){
    var nodeFound = null;
    recursive = function(nodes)
    {
        for(var i =0 ; i< nodes.length; i++)
        {
            if(nodes[i].nodeType == 1) //element nodes
            {
                //console.log(nodes[i].id);   //only element nodes have id's
                if(nodes[i].id == passedId)
                {
                    //console.log(nodes[i]);
                    nodeFound = nodes[i];
                    return;
                }
                if(nodes[i].childNodes)
                {
                    //console.log('there are child nodes inside it');
                    recursive(nodes[i].childNodes);
                }
            }
        }
    }
    recursive(document.body.childNodes);
    return nodeFound;
};

这是一种正确的做法吗?这对性能有益吗? 它与覆盖本机getElementById()方法无关。如何编写本机函数?有人可以帮帮我吗? 提前谢谢。

1 个答案:

答案 0 :(得分:2)

本机函数不是用JS编写的,因此任何JS方法都必然与原始getElementById不同。

您的功能也可能不如浏览器的实现效率高,因为您所做的只是从众多其他本机功能中复制它。