有没有人做过在JS里面将一个DOM tree给序列化成JSON text的?如果有,能不能给一个例子?

解决方案 »

  1.   

    LZ反了吧,把数据json序列化存储比较靠谱点。读取时取json再渲染成tree
      

  2.   

    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Test</title>
    </head>
    <body>
    <div id="div" class="test">
    <span>This is a span.</span>
    <p>This is a p.</p>
    </div>
    <script>
    var div = document.getElementById('div');
    function toTree(elem){
    var obj = {},
    attr = elem.attributes,
    childs = elem.childNodes;
    obj["nodeName"] = elem.nodeName;
    if(attr){
    for(var i = 0; i < attr.length; i++){
    obj[attr[i].name] = attr[i].value;
    }
    }
    obj["childNodes"] = [];
    for(var i = 0; i < childs.length; i++){
    obj["childNodes"].push(toTree(childs[i]));
    }
    return obj;
    }

    var json = toTree(div)
    for(var i in json){
    document.write(i+": "+json[i]+"<br/>");
    }

    </script>
    </body>
    </html>