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

dom节点转成json数据

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

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,他都会额外加多个属性给我们的标签,所以大多是会错误,注意这一点基本上就好了。

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-27 20:15
还能挽救吗?找同学帮忙看了一下&nbsp;字节怎么能如此对我
牛客26396789...:你这是严重红线,被发现你自己永远进不去,你那个同学直接走人,你还敢宣扬
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-27 15:07
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务