traverse

by Artem

HTML

<div id="1">
  <div id="2">
    <div id="3"></div>
  </div>
  <div id="4"></div>
</div>

JavaScript

'use strict';

function traverse(domNode, callback) {
  callback(domNode);
  [].forEach.call(domNode.children, el => {
    callback(el);
    const child = el.firstElementChild;
    if (child) {
      traverse(child, callback);
    }
  });
}

const domNode = document.getElementById('1');
traverse(domNode, el => console.log(el.id));