这题的测试机有问题,测试用例在浏览器中明明输出的是 true,它非得说我输出的是null
function dom2json() {
let parentNode = document.querySelector("#jsContainer");
return getNodeJson(parentNode);
}
function getNodeJson(node){
let obj = {};
// obj.tag = node.nodeType == "3" ? "text" : node.tagName.toLowerCase();
// 【需求】5、纯文本也视为一个节点, json格式为 {tag: 'text', content: '文本内容'},content为文本内容执行trim后的结果,如果该结果为空,则忽略当前节点
if(node.nodeType == "3"){
if(!node.textContent.trim()) return;
obj.tag = "text";
obj.content = node.textContent.trim();
}else{
obj.tag = node.tagName.toLowerCase();
obj.attributes = {};
obj.children = [];
// 收集属性值
[...node.attributes].map(el=> {
obj.attributes[el.name] = el.value;
})
node.childNodes.forEach(item=>{
if(!getNodeJson(item)) return;
obj.children.push(getNodeJson(item));
})
}
return obj;
} 
京公网安备 11010502036488号