我想制作一个 jquery 插件来美化 html 代码,将缩进空格作为一个选项。
我想知道如何进行。我应该递归地提取每个 dom 元素并存储它然后继续它吗?
注意:我尝试了上述过程,但它不适用于 4-5 个标签,并且如果函数中传递了更多 dom 元素,则页面崩溃。
递归实现的代码类似于:
result="";
function serialize(domNode, indent) {
//get tagname & attributes
result+="<"+tagname+""+attributes+">";
var children=domNode.childNodes;
for (var i=0;i<children.length;i++) {
var node=children[i];
if(children[i].nodeType==3) {
result += children[i].data;
}
else if (children[i].nodeType == 1) {
result += serialize(children[i], indent);
}
}
result += "</"+tagname+">";
}
PS:我知道代码很糟糕,所以我需要一些更好的实现。