如何使用递归遍历 DOM 树并对每个子元素执行回调函数?

如何使用递归遍历 DOM 树并对每个子元素执行回调函数?

js 面试题:遍历 dom

给定一个 dom 元素 d_elem,要求遍历所有子元素(包括嵌套的子元素),并将每个子元素作为参数传递给一个回调函数

解法:

function recursive(el, callback) {     if (el.childNodes) return;     for (var elIndex in el.childNodes) {         recursive(el.childNodes[elIndex], callback);         callback(el.childNodes[elIndex]);     } }  recursive(document.body, function (el) { console.log(el) });
登录后复制

该解决方案采用递归的方式遍历 dom 树。

  1. 检查当前元素是否有子元素。如果没有,则终止递归
  2. 遍历当前元素的所有子元素,并递归地调用该函数。
  3. 回调函数中处理每个子元素。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容