DOM(Document Object Model)是一種用于操作HTML和XML文檔的程序接口,它將文檔的結構化表示映射到對象模型中,從而使開發者能夠通過代碼來操縱和修改文檔的內容和結構。
在某些情況下,我們需要將DOM對象轉換為JSON格式的數據,這樣便于在傳輸和存儲數據時進行序列化和反序列化操作。下面是一個實現這種轉換的示例代碼:
function dom2json(element) { var obj = {}; if (element.nodeType == Node.TEXT_NODE) { obj = element.nodeValue; } else { obj[element.nodeName] = {}; if (element.attributes.length >0) { obj[element.nodeName]["@attributes"] = {}; for (var i = 0; i< element.attributes.length; i++) { var attribute = element.attributes.item(i); obj[element.nodeName]["@attributes"][attribute.nodeName] = attribute.nodeValue; } } if (element.childNodes.length >0) { for (var i = 0; i< element.childNodes.length; i++) { var item = element.childNodes.item(i); var nodeName = item.nodeName; if (typeof obj[element.nodeName][nodeName] == "undefined") { obj[element.nodeName][nodeName] = dom2json(item); } else { if (typeof obj[element.nodeName][nodeName].push == "undefined") { var old = obj[element.nodeName][nodeName]; obj[element.nodeName][nodeName] = []; obj[element.nodeName][nodeName].push(old); } obj[element.nodeName][nodeName].push(dom2json(item)); } } } } return obj; }
以上代碼可以將一個DOM節點轉換成JSON對象,該對象可以用于傳輸和存儲。
上一篇vue事件多次出發
下一篇python 直線角度