オプションとしてインデント スペースを使用して HTML コードをきれいにするための jquery プラグインを作成したいと考えていました。
これをどのように進めるか知りたいと思いました。各 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: コードが悪いことはわかっているので、より良い実装が必要です。