DOM節點是指網頁中的元素、屬性、文本等等。在Web開發中,我們經常需要把DOM節點轉換成JSON數據。下面就為大家介紹如何把DOM節點轉成JSON數據。
function nodeToJson(node) { let obj = {}; obj.tagName = node.tagName.toLowerCase(); if (node.attributes.length >0) { obj.attributes = {}; for (let i = 0; i< node.attributes.length; i++) { let attr = node.attributes[i]; obj.attributes[attr.name] = attr.value; } } if (node.childNodes.length >0) { obj.children = []; for (let i = 0; i< node.childNodes.length; i++) { let child = node.childNodes[i]; if (child.nodeType === 1) { obj.children.push(nodeToJson(child)); } else if (child.nodeType === 3) { obj.text = child.nodeValue; } } } return obj; } let json = nodeToJson(document.documentElement); console.log(JSON.stringify(json));
上述代碼中的nodeToJson函數用于將DOM節點轉成JSON數據。該函數會遍歷節點的tagName(標簽名),attributes(屬性)和childNodes(子節點),并把這些信息存到一個對象中。如果節點有子節點,則遍歷子節點并把子節點也轉成JSON數據存到對象的children中。如果節點只是文本信息,則把文本信息存到text中。
通過調用nodeToJson函數并傳入document.documentElement作為參數,可以把整張HTML文檔轉成JSON數據。我們可以在控制臺中打印出這個JSON數據,以便后續處理。當然,我們也可以針對特定節點調用nodeToJson函數,把該節點轉成JSON數據,方便我們進行操作。