输出见控制台
DOM结构<div> <span> <a></a> </span> <span> <a></a> <a></a> </span> </div>
JSON格式{ tag: 'DIV', children: [ { tag: 'SPAN', children: [ { tag: 'A', children: [] } ] }, { tag: 'SPAN', children: [ { tag: 'A', children: [] }, { tag: 'A', children: [] } ] } ] }
解一:注意DOM
结构需要去除所有空格,否则会产生多余Text
节点。
function dom2json(dom, json = {}) {
json.tag = dom.tagName;
json.children = [];
dom.childNodes.forEach(child => json.children.push(dom2json(child)));
return obj;
}
https://juejin.cn/post/6844904122559250440
马特·弗里斯比. JavaScript高级程序设计:第4版,P419.