簡體   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