Javascript .innerHTML和console.log()在显示/呈现输出方面有什么区别吗?
我正在使用java脚本函数将JSON转换为XML字符串。我甚至能够成功地做到这一点。但是,当我尝试用3种不同的方法查看它时,当我使用alert和console.log()时,我在.innerHTML中得到了不同的输出 这种差异的原因是什么?我做错什么了吗 下面是我的代码: HTML:Javascript .innerHTML和console.log()在显示/呈现输出方面有什么区别吗?,javascript,jquery,json,xml,Javascript,Jquery,Json,Xml,我正在使用java脚本函数将JSON转换为XML字符串。我甚至能够成功地做到这一点。但是,当我尝试用3种不同的方法查看它时,当我使用alert和console.log()时,我在.innerHTML中得到了不同的输出 这种差异的原因是什么?我做错什么了吗 下面是我的代码: HTML: <div id="show"></div> JS 函数objectToXml(obj){ var xml=''; 用于(obj中的var prop){ 如果(!对象hasOwnProper
<div id="show"></div>
JS
函数objectToXml(obj){
var xml='';
用于(obj中的var prop){
如果(!对象hasOwnProperty(prop)){
持续
}
if(obj[prop]==未定义)
持续
xml+=“”;
if(对象的类型[prop]=“对象”)
xml+=objectToXml(新对象(obj[prop]);
其他的
xml+=obj[prop];
xml+=“”;
}
返回xml;
}
var myJson={“id”:1,“name”:“Albert”,“dob”:“2011-02-19”,“gender”:“male”,“email”:”albert@rediffmail.com“,”语言“:”英语“}
var xmlString=objectToXml(myJson);
document.getElementById(“show”).innerHTML=xmlString;
警报(xmlString);
log(xmlString);
我真的不明白为什么使用.innerHTML时不打印XML字符串
下面是一个
innerHTML
将呈现html
改用innerText
请参阅更新提琴:
innerHTML
将呈现html…是的!我明白了。因此,当呈现为HTML时,它基本上消除了开始和结束标记,就像其他HTML标记一样。是的,因为基本上您可以使用自定义标记,请参阅
#show{
width:100%;
height:200px;
background:#000;
color:#fff;
}
function objectToXml(obj) {
var xml = '';
for (var prop in obj) {
if (!obj.hasOwnProperty(prop)) {
continue;
}
if (obj[prop] == undefined)
continue;
xml += "<" + prop + ">";
if (typeof obj[prop] == "object")
xml += objectToXml(new Object(obj[prop]));
else
xml += obj[prop];
xml += "</" + prop + ">";
}
return xml;
}
var myJson={"id":1,"name":"Albert","dob":"2011-02-19","gender":"male","email":"albert@rediffmail.com","language":"English"}
var xmlString = objectToXml(myJson);
document.getElementById("show").innerHTML=xmlString;
alert(xmlString);
console.log(xmlString);