我正在嘗試學習ES2015,並且遇到了小函數的問題,我必須解析某個DOM元素並查找所有textnodes並將其刪除。for ...在js中的聲明 - 與dom集合的問題
而且我在循環語句中有簡單的這個函數。
function deleteTextNodes(element) {
if(!element) {
throw new Error ("Element doesn't exist")
}
for (let i = 0; i < element.childNodes.length; i ++) {
if (element.childNodes[i].nodeType == 3) {
element.removeChild(element.childNodes[i]);
i--;
} else if(element.childNodes[i].nodeType == 1) {
deleteTextNodes(element.childNodes[i])
}
}
而且我嘗試重寫功能在...上聲明的語法如下
function deleteTextNodes(element) {
if(!element) {
throw new Error ("Element doesn't exist")
}
for(elem of element.childNodes) {
console.log(elem, elem.nodeType,);
if (elem.nodeType == 3) {
element.removeChild(elem);
} else if(elem.nodeType == 1) {
deleteTextNodes(elem)
}
}
return true
}
可能,第二個功能工作正常,除了一個 - 爲...上跳過去刪除textnode之後的下一個節點或類似的東西。我解決這個問題,第一個功能加入i--;
所以,問題是如何解決這個問題在第二個功能?
嘗試'Array.from(element.childNodes)' –
@ArtyomNeustroev Thx U,它的工作原理! – elektrobober
*可能*表示什麼?你有沒有嘗試過? – Bergi