function dom2json() {
var father = document.getElementById('jsContainer');
function js(dom){
var obj = {
tag:dom.nodeName.toLowerCase().replace('#',''),
}
if(dom.nodeType == 1){
var attrs = dom.attributes;
obj.attributes = {};
for(var i = 0;i < attrs.length;i++){
obj.attributes[attrs[i].name] = attrs[i].value;
}
var child = dom.childNodes;
obj.children = [];
Array.from(child).forEach(item => {
if(!js(item)) return;
obj.children.push(js(item));
});
}
if(dom.nodeType == 3){
if(dom.nodeValue.trim() == '') return;
obj.content = dom.nodeValue.trim();
}
return obj;
}
return js(father);
}
很多小伙伴可能浏览器运行可以,但测试不行,打算是可能是因为在有些浏览器运行时,比如说360,他都会额外加多个属性给我们的标签,所以大多是会错误,注意这一点基本上就好了。