1

我想制作一个 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:我知道代码很糟糕,所以我需要一些更好的实现。

4

0 回答 0