Как преобразовать из рекурсивной функции в цикл (на время и т. Д.) В DOM (Javascript) - PullRequest
0 голосов
/ 06 ноября 2019

Я получил этот код во время поиска, однако я хотел бы, чтобы он преобразовал рекурсивную функцию в цикл с использованием for или while и т. Д. Этот код предназначен для выбора всех дочерних узлов Body в DOM (Javascirpt) и печати на консоли.

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

Не могли бы вы дать мне несколько советов? Заранее спасибо:)

1 Ответ

0 голосов
/ 06 ноября 2019

Вы можете запросить целевой элемент для всех его дочерних элементов и перебрать их

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

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...