2017-02-23 208 views
0

Я конвертирую JSON в XML-строку с помощью функции java-скрипта. Я могу даже успешно это сделать. Но когда я попытался просмотреть его в 3 разных методах, я получаю разные результаты в .innerHTML, когда comapred to alert и console.log() В чем причина таких различий? Что-то не так, что я делаю.Есть ли разница между .innerHTML и console.log() в терминах вывода вывода/рендеринга?

Вот идет мой код:

HTML:

<div id="show"></div> 

CSS:

#show{ 
    width:100%; 
    height:200px; 
    background:#000; 
    color:#fff; 
} 

JS

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":"[email protected]","language":"English"} 
    var xmlString = objectToXml(myJson); 
    document.getElementById("show").innerHTML=xmlString; 
    alert(xmlString); 
    console.log(xmlString); 

Я не понимаю причину, почему XML строку не печатается, когда .in Используется nerHTML.

Вот JS FIDDLE

+1

'innerHTML' будет * * рендеринг HTML, ... –

ответ

1

innerHTML будет рендеринга HTML,.

Используйте вместо этого innerText.

См скрипка обновления: jsfiddle-link

+0

Да! Я понял. Таким образом, при рендеринге как HTML, в основном он устраняет открывающие и закрывающие теги, как и любые другие теги HTML. Thanx для ответа. – Venky

+1

Да, потому что в основном вы можете использовать пользовательские теги, см. Http://stackoverflow.com/questions/2802687/is-there-a-way-to-create-your-own-html-tag-in-html5 –

+0

Там, я вникнуть в суть! – Venky