我正在尝试学习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