题解 | #dom节点转成json数据#

dom节点转成json数据

http://www.nowcoder.com/practice/0340a0c6d11d4aadba0aef86e6ae723f

function dom2json() {
        var conatiner = document.getElementById('jsContainer');
        var res_zen = {};

        function setAC(zen, res_zen) {
            if (!res_zen.tag) {
                res_zen.tag = zen.tagName.toLowerCase();
                res_zen.attributes = {};
                res_zen.children = [];
            }
            var nodes = Array.from(zen.childNodes);
            var attrs = zen.attributes || [];
            for (var i = 0; i < nodes.length; i++) {
                var node_type = nodes[i].nodeType;
                var node_name = nodes[i].nodeName;
                if (node_type == 1) {
                    // 元素
                    var obj = {};
                    res_zen.children.push(setAC(nodes[i], obj));
                } else if (node_type == 3) {
                    // 文本
                    var obj = {
                        tag: 'text',
                        content: nodes[i].nodeValue.trim(),
                    };
                    if (obj.content) {
                        res_zen.children.push(setAC(nodes[i], obj));
                    }
                }
            }
            for (var i = 0; i < attrs.length; i++) {
                // 属性
                res_zen.attributes[attrs[i].nodeName] = attrs[i].nodeValue;
            }

            return res_zen;
        }

        return setAC(conatiner, res_zen);
    }
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务