有没有办法将HTML dom对象JSON.STRING化?[JavaScript]

有没有办法将HTML dom对象JSON.STRING化?[JavaScript],javascript,html,json,xmlhttprequest,stringify,Javascript,Html,Json,Xmlhttprequest,Stringify,我正在尝试加载一个外部html文件,并对正文中的内容进行字符串化,但如果不产生不希望的结果,我似乎无法这样做。有没有办法做到这一点 var xhr = new XMLHttpRequest(); function loadFile(){ xhr.open("GET", 'index.html'); xhr.responseType = "document"; xhr.send(); } xhr.onload = function(data) { myData

我正在尝试加载一个外部html文件,并对正文中的内容进行字符串化,但如果不产生不希望的结果,我似乎无法这样做。有没有办法做到这一点

var xhr = new XMLHttpRequest();

function loadFile(){
    xhr.open("GET", 'index.html');
    xhr.responseType = "document";
    xhr.send();
}

xhr.onload = function(data) {
    myData = data;
    myString = JSON.stringify(myData.srcElement.responseXML.body.children);
        console.log(myString)
       //logs: {"0":{},"length":1}

    }

loadFile();
但我需要加载的是实际的div内容,例如:

//log: '<div id ='mydiv'>...</div>
//日志:'。。。

我做错了什么

你的问题不是很清楚,但我想试一试。灵感来自那里:。演示:

函数string2dom(html){
变量iframe,doc;
iframe=document.createElement('iframe');
iframe.style.display='none';
document.body.appendChild(iframe);
doc=iframe.contentDocument | | iframe.contentWindow.document;
iframe.parentNode.removeChild(iframe);
doc.open();
doc.write(html);
doc.close();
退货单;
}
var dom=string2dom(“”)
+ ''
+   ''
+“测试”
+   ''
+   ''
+“allo la terre”
+   ''
+ ''
);
document.body.innerHTML=(
dom.getElementById('test').innerHTML
);

我可以通过将响应类型更改为“DOMString”来解决这个问题:

function buildAd(file){
    xhr.open("GET", file);
    xhr.responseType = "DOMString";
    xhr.send();
}

您必须将想要的内容提取到自己的JavaScript数据结构中,然后将其字符串化。内置序列化程序无法直接在DOM上工作。请使用document.body.innerHTMLIf如果只需要实际的div内容,则无需对其进行
JSON.stringify
。改为这样做:
myString=myData.srcmelement.responseXML.body.children
@raghavendra我需要将值创建为字符串,以便替换某些值或ID、属性、文本等。是否跨浏览器兼容?
function buildAd(file){
    xhr.open("GET", file);
    xhr.responseType = "DOMString";
    xhr.send();
}