繁体   English   中英

如何在 DOM(Javascript)中从递归 function 转换为循环(for while 等)

[英]How to convert from recursive function to loop(for while etc) in DOM(Javascript)

我在搜索时得到了这段代码,但是,我希望它从递归 function 转换为使用 for 或 while 等循环。这段代码是关于在 DOM(Javascirpt) 中选择 Body 的所有子节点并在控制台上打印。

<script>
function traverse(target, callback){
    if(target.nodeType === 1){
        callback(target);
        var c = target.childNodes;
        for(var i=0; i<c.length; i++){
            /* recursive function here */
            traverse(c[i], callback);       
        }   
    }
}
traverse(document.querySelector('body'), function(elem){
    console.log(elem);
});
</script>

你能给我一些建议吗? 提前致谢:)

您可以查询目标元素的所有子元素并对其进行迭代

function traverse(target, callback)
{
   var nodes = target.getElementsByTagName('*');
   callback(target);
   for(var i=0;i<nodes.length;i++)
   {
      callback(nodes[i]);
   }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM