首页 > 试题广场 >

标题:HTML字符串转换为domTree数据结构 题目描述:

[问答题]
标题:HTML字符串转换为domTree数据结构
题目描述:给到html字符串`
<div id="test" class="myDiv"><div><p id="testP"></p><span></span></div><input type="text"/></div>
`
实现函数`toDomTree()`最后可以得到如下数据
[
  {
    "label": "div",
    "children": [
      {
        "label": "div",
        "children": [
          {
            "label": "p",
            "children": []
          },
          {
            "label": "span",
            "children": []
          }
        ]
      },
      {
        "label": "input"
      }
    ]
  }
]
function getDOMTree(html) {
  const root = document.createElement('div');
  root.innerHTML = html;
  const domTree = (father) => {
    const obj = { children: [], label: father.tagName.toLowerCase() };
    for (let ele of father.children) {
      obj.children.push(domTree(ele));
    }
    return obj;
  };
  return domTree(root.children[0]);
}
编辑于 2020-06-24 16:25:42 回复(1)
var txt='<div id="test" class="myDiv"><div><p id="testP"></p><span></span></div><input type="text"/></div>'
var root = document.createElement("div")
root.id = "root"
root.innerHTML = txt
document.body.appendChild(root)
var father = document.querySelector("#root").firstChild
function domTree(father){
var obj={}
obj.label = father.tagName.toLowerCase()
obj.children = []
var childs = father.children
if(childs){
for(item of childs)
{
obj.children.push(domTree(item))
}
}
return obj
}
console.log(JSON.stringify(domTree(father)))
发表于 2020-04-05 17:45:49 回复(0)
function toDomTree(html) {
    let tagStart = /\<\w+(?=\s[.*])\/?\>/
    let tagEnd = /\<\/\w+\s*\>/
}

发表于 2019-12-23 09:55:25 回复(0)