美文网首页
简单获取页面所有dom节点

简单获取页面所有dom节点

作者: 就那ck | 来源:发表于2017-04-28 17:55 被阅读0次

    实现类似document.getElementsByTagName("*");的功能

    function getAllNodes(d){
        //判断下参数
        d === '*' && (d = document.getElementsByTagName('html'));
        //用arguments[1] 初始化一个空数组
        !arguments[1] && (arguments[1] = []);
        for(var i = 0,l = d.length;i < l;i++){
            //nodeType === 1 时 push
            d[i].nodeType === 1 && arguments[1].push(d[i]);
            //有子节点 arguments[1]作为参数继续调用 arguments.callee 可以调用自身 匿名函数常用 
            d[i].hasChildNodes() && arguments.callee(d[i].childNodes,arguments[1]);
        }
        //把arguments[1] return出来
        return arguments[1];
    };
    console.log(getAllNodes("*"));
    

    相关文章

      网友评论

          本文标题:简单获取页面所有dom节点

          本文链接:https://www.haomeiwen.com/subject/qcdazttx.html