用js编写一个dom遍历方法,每当退出一层dom的时候就触发回调out,out的参数为退出这层dom时内部的全部子节点(不包括孙子节点)
时间: 2024-01-24 21:17:19 浏览: 57
可以使用递归来实现这个功能:
```javascript
function traverseDom(node, out) {
out(node.childNodes); // 退出这一层DOM时触发回调,并传入子节点列表作为参数
for (let i = 0; i < node.childNodes.length; i++) {
traverseDom(node.childNodes[i], out); // 对每个子节点递归调用遍历函数
}
}
```
使用方法:
```javascript
const root = document.getElementById('root');
traverseDom(root, function(nodes) {
console.log(nodes); // 在控制台输出退出这一层DOM时的子节点列表
});
```
其中第一个参数`node`传入需要遍历的DOM节点,第二个参数`out`为回调函数,可以在遍历过程中传入需要执行的回调逻辑。在示例代码中,回调函数`out`会在每层DOM退出时将子节点列表打印到控制台上。
阅读全文