鍍金池/ 問答/HTML5  Python  HTML/ 如何使用“非遞歸”的方式,從左到右遍歷DOM節(jié)點(diǎn)?

如何使用“非遞歸”的方式,從左到右遍歷DOM節(jié)點(diǎn)?

如題:

我們有個(gè)需求,需要從左到右遍歷DOM節(jié)點(diǎn),直到找到符合條件一個(gè)node節(jié)點(diǎn),然后停止遍歷。
我在網(wǎng)上找了好多,都是遞歸的方式,無法在找到對(duì)應(yīng)的節(jié)點(diǎn)時(shí)停止計(jì)算。

請(qǐng)問各位大神,這個(gè)需求怎么做???
多謝

回答
編輯回答
故人嘆

用for循環(huán),找到之后直接return這個(gè)符合條件的這個(gè)node節(jié)點(diǎn)

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

如果你想深層次遍歷的話,推薦你看看這篇:DOM遍歷節(jié)點(diǎn)以及屬性

2017年6月28日 22:48
編輯回答
任她鬧

用for循環(huán),找到就break跳出循環(huán)

2017年5月9日 00:00
編輯回答
骨殘心

遞歸可以在找到對(duì)應(yīng)的節(jié)點(diǎn)時(shí)停止計(jì)算啊 加個(gè)標(biāo)記 遞歸的時(shí)候 先判斷 如果是true 就return
非遞歸可以用棧 模擬遞歸
你說的是從左到右遍歷DOM節(jié)點(diǎn) 那我認(rèn)為是一層一層遍歷
那你就用個(gè)隊(duì)列啊 每次取出頭節(jié)點(diǎn) 處理 然后把這個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn)都放入隊(duì)尾

2017年12月31日 04:20