素材牛VIP会员
如何使用“非递归”的方式,从左到右遍历DOM节点?
 默***H  分类:JavaScript  人气:907  回帖:3  发布于6年前 收藏

如题:

我们有个需求,需要从左到右遍历DOM节点,直到找到符合条件一个node节点,然后停止遍历。
我在网上找了好多,都是递归的方式,无法在找到对应的节点时停止计算。

请问各位大神,这个需求怎么做啊?
多谢

讨论这个帖子(3)垃圾回帖将一律封号处理……

Lv5 码农
阿***7 产品经理 6年前#1

递归可以在找到对应的节点时停止计算啊 加个标记 递归的时候 先判断 如果是true 就return
非递归可以用栈 模拟递归
你说的是从左到右遍历DOM节点 那我认为是一层一层遍历
那你就用个队列啊 每次取出头节点 处理 然后把这个节点的子节点都放入队尾

Lv5 码农
mi***02 学生 6年前#2

用for循环,找到就break跳出循环

Lv2 入门
Br***23 产品经理 6年前#3

用for循环,找到之后直接return这个符合条件的这个node节点

    for(var i=0;i<node;i++){ 
        if(node.children[i].getAttribute('id') === '1234'){ //getAttribute() 方法返回指定属性名的属性值
            return node.children[i]; 
        } 
    }

如果你想深层次遍历的话,推荐你看看这篇:DOM遍历节点以及属性

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取