首页 > 试题广场 >

dom节点转成json数据

[编程题]dom节点转成json数据
  • 热度指数:3312 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
页面上存在id=jsContainer的节点A,系统会随机在节点A中生成文档片段,请按照如下需求实现 dom2json 函数
1、dom2json需要分析整个节点A的dom结构,并将其结构转换为对应的json对象
2、需要获取dom结构的标签名称(tag),所有属性(attributes),子节点(children)
3、文档片段中的属性形式均为 name="value",解析之后的格式为{name: value}, 属性值为String类型,不需要做解析
4、随机生成的文档片段中,只包含 nodeType 为1(element)和3(text)的节点,不需要考虑其他节点类型
5、纯文本也视为一个节点, json格式为 {tag: 'text', content: '文本内容'},content为文本内容执行trim后的结果,如果该结果为空,则忽略当前节点
6、返回结果中的标签名称不区分大小写
7、如果节点不包含属性值或者子节点,其对应的结果中需要保留attributes以及children字段,例如 {tag: 'div', attributes: {}, children: []}
8、当前界面执行dom2json之后的结果为如下图所示
9、请不要手动修改html和css
10、不要使用第三方插件
头像 努力学习前端ing^_^
发表于 2022-05-19 20:21:54
本题可以和JS的40题,虚拟DOM配合着记忆,是互逆的过程。 function dom2json() { const jsContainer = document.getElementById('jsContainer'); return createObj(jsContainer) 展开全文
头像 轻风123
发表于 2021-09-04 17:16:18
function dom2json() { //获取到dom对象 const jsContainer = document.querySelector("#jsContainer") console.log(jsContainer) consol 展开全文
头像 驊驊龔頾
发表于 2021-06-01 04:03:59
这题的测试机有问题,测试用例在浏览器中明明输出的是 true,它非得说我输出的是null function dom2json() {   let parentNode = document.querySelector("#js 展开全文
头像 你的东来啦
发表于 2023-07-18 22:01:53
思路:将dom节点转换为json数据,其实是从上到下转换,首先获取该节点,然后分别使用tagName、attributes、childNodes获取元素的标签名、元素的属性集合(name、value)、元素的子节点 集合,然后再分别使用nodeType、textContent判断元素的节点类型、文本 展开全文
头像 牛客199756027号
发表于 2021-06-29 17:13:21
function dom2json() { const jsContainer = document.querySelector("#jsContainer") function domJson(dom) { 展开全文
头像 littlecat7
发表于 2023-01-12 23:18:39
没通过测试,在本地测试为true,牛客网测试为null,我认真地看了一遍牛客网的测试代码,奇葩,离谱,不知道哪个牛马写的,如下:需要返回json对象但是呢,以下是测试代码,可以看到传入给isSame函数的数据是dom2json函数返回的数据(String类型),以及一个测试对象(Object类型), 展开全文
头像 攀登者1号
发表于 2021-07-12 17:09:35
function dom2json() { var father = document.getElementById('jsContainer'); function js(dom){ var obj = { 展开全文
头像 前端小菜鸡QAQ
发表于 2021-07-08 14:55:16
function dom2json() { const A = document.querySelector('#jsContainer') return convert(A) } function convert(dom) { let obj = {} if ( 展开全文
头像 花落再无相伴
发表于 2022-08-24 16:25:41
     const getAttr = (node) => {         const attri 展开全文
头像 牛客765262887号
发表于 2021-06-23 10:29:32
function dom2json() { let root = document.getElementById('jsContainer'); return JSON.parse(JSON.stringify(analysisDom(root))) 展开全文