[英]JSON returning (object, Object)
誰能向我解釋下面的代碼為何給出(對象,對象)?
(console.log(dope)給出了應該的內容,但是在JSON.stringify和JSON.parse之后,它只是說object,Object)。 如果您能告訴我為什么這樣做,那就太好了。
var nombrememes = document.getElementsByClassName("meme").length;
var memenumber = nombrememes + 1;
var newmeme = prompt('Please paste the link of the meme below!');
memes.push ('placememe'+memenumber+'');
var div = document.createElement('div');
document.body.appendChild(div);
div.id = 'placememe'+memenumber+'';
div.className = 'meme';
div.innerHTML = '<img src="'+newmeme+'" width="700" height="700" alt="" />';
var dope = document.getElementById('placememe'+memenumber+'');
console.log(dope);
localStorage.setItem('dope', JSON.stringify(dope));
var pla = JSON.parse(localStorage.getItem('dope'));
alert(pla);
這是因為在JSON.parse
之后,您現在正在處理JavaScript對象。
IE瀏覽器在執行{}.toString()
時不會返回'{}'
而是會返回[object Object]
,這是Javascript返回的對象字符串表示形式。 這就是為什么需要JSON.stringify()
才能將Javascript對象轉換為JSON的原因。
如果要獲取警報的字符串,只需將來自localStorage
的值保留為字符串表示形式。
var pla = localStorage.getItem('dope');
alert(pla);
這行不通。 看到這個問題 。 您正在嘗試將DOM節點序列化為JSON,但這是不可能的。 而是將其序列化為空對象。 然后您要alert(...)
那個alert(...)
。 alert
對象時,它每次都會包含[Object object]
。
JSON.stringify / JSON.parse操作與您的問題並沒有真正的關系。 任何有效的對象都可以正常工作-而不是DOM節點。
要保存DOM節點的部分 ,可以保存單個標量屬性。 例如,可以保存innerHtml。 根據需要添加其他屬性。
var o = {
inner: dope.innerHtml
};
建議:
如果要打印對象以調試代碼,請嘗試以下操作:
console.log(pla)
否則,如果出現alert
嘗試以下操作:
試試這個,它將為您提供帶有縮進JSON對象的輸出:
alert(JSON.stringify(pla, null, 4));
好處:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.