简单获取页面所有dom节点

实现类似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("*"));
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容