function dom2json() { const A = document.querySelector('#jsContainer') return convert(A) } function convert(dom) { let obj = {} if (dom.nodeType === 3) { if (!dom.textContent.trim()) return obj.content = dom.nodeValue.trim() obj.tag = 'text' } else { obj.tag = dom.tagName.toLowerCase() obj.attributes = {} obj.children = [] Array.from(dom.attributes).map((attr) => { obj.attributes[attr.name] = attr.value }) dom.childNodes.forEach(item => { if (!convert(item)) return obj.children.push(convert(item)) }) } return obj }