javascript - 将 html 元素映射到 json 对象

标签 javascript json

<分区>

我有一个这样的 html 元素,

<div class='myparent'>
    <div>
        <div class="pdp-product-price">
            <span> 650 rupees</span>
            <div class="origin-block">
               <span> 1,500 rupees</span>
               <span>-57%</span>
            </div>
        </div>
    </div>
</div>

我需要为这个“myparent”div 创建一个 json。

{
    "div": {
        "div": {
            "div": {
                "span": {},
                "div": {
                    "span": {},
                    "span": {}
                }
            }
        }
     }
}   

有没有办法在 javascript 中做到这一点?

最佳答案

您可以使用 HTMLElementchildren 属性

然后递归遍历父节点并得到子树。

但请注意,您不能使用相同的键分配两个值。因此,您可以在分配子树时使用索引,如

  "div": {
     "span_1": {},
     "span_2": {},
  }

希望下面的代码片段能给您一些线索。

const parent = document.getElementById('parent')

const tree = {};


const getTree = (elem) => {
   const subtree = {};
   for(let child of elem.children){
       subtree[child.tagName.toLowerCase()] = getTree(child)
   }
   return subtree;
}

tree[parent.tagName.toLowerCase()] = getTree(parent);

console.log(tree);
<div id="parent" class='myparent'>
  <div>
    <div class="pdp-product-price">
      <span> 650 rupees</span>
      <div class="origin-block">
        <span> 1,500 rupees</span>
        <span>-57%</span>
      </div>
    </div>
  </div>
</div>

关于javascript - 将 html 元素映射到 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58413830/

相关文章:

python - 自定义 JSONEncoder 返回格式错误的字符串

javascript - 在d3js中连接两个矩形

javascript - 如何从 iframe 内的 TinyMCE 实例获取内容

javascript - HTML5 Canvas 图像上传 - 上传空白图像或被破坏

css - 实验性 chrome 历史扩展

ios - 如何在 iOS App 中解析 JSON

python - 将巨大的(95Mb)JSON 数组拆分成更小的 block ?

javascript - javascript中有集合吗?

javascript - 谷歌地图 API JS V3 : infowindow. getPosition() == 未定义?

javascript - 读取 JSON 时出现问题