我有以下代码(对于目前的情况,它可以被视为从作为输入提供的有效 html 字符串中删除属性的函数):
function parse(htmlStr)
{
console.log(htmlStr);
result+="<"+htmlStr.tagName.toLowerCase()+">";
var nodes=htmlStr.childNodes;
for(i=0;i<nodes.length;i++) {
var node=nodes[i];
if(node.nodeType==3) {
var text=$.trim(node.nodeValue);
if(text!=="") {
result+=text;
}
}
else if(node.nodeType==1) {
result+=parse(node);
}
}
result+="</"+htmlStr.tagName.toLowerCase()+">";
return result;
}
但它没有按预期工作。例如,在以下情况下,当我将以下 html 作为输入提供给它时:
<div id="t2">
Hi I am
<b>
Test
</b>
</div>
它返回<div>Hi I am<div>Hi I am<b>Test</b></div>
。
如果给函数提供一些大的输入,页面也会崩溃。
注意:我知道使用 jQuery 从字符串中删除属性有更好的实现,但我需要在这里使用上面的函数,而且完整的代码不是用于删除属性,上面只是代码的缩短部分