Javascript JSON返回(对象,对象)
有人能解释一下为什么下面的代码会给出(object,object)?Javascript JSON返回(对象,对象),javascript,json,Javascript,Json,有人能解释一下为什么下面的代码会给出(object,object)? (console.log(dope)给出了它应该给出的内容,但在JSON.stringify和JSON.parse之后,它只说object,object)。如果你能告诉我为什么会这样,那就太好了 var nombrememes = document.getElementsByClassName("meme").length; var memenumber = nombrememes + 1; var newmeme = pr
(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);
var nombremes=document.getElementsByClassName(“meme”).length;
var memenumber=nombremes+1;
var newmeme=prompt('请粘贴下面meme的链接!');
memes.push('placememe'+memenumber+'');
var div=document.createElement('div');
文件.正文.附件(div);
div.id='placememe'+memenumber+'';
div.className='meme';
div.innerHTML='';
var dope=document.getElementById('placememe'+memenumber+'');
控制台日志(dope);
setItem('dope',JSON.stringify(dope));
var pla=JSON.parse(localStorage.getItem('dope');
警报(解放军);
这是因为在JSON.parse
之后,您现在正在处理一个JavaScript对象
当您执行{}.toString()
时,您将无法返回'{}'
您将返回[object object]
,这是Javascript为对象的字符串表示返回的内容。这就是为什么将Javascript对象转换为JSON需要JSON.stringify()
如果要获取警报的字符串,只需将localStorage
中的值保留为字符串表示形式即可
var pla = localStorage.getItem('dope');
alert(pla);
这行不通。看见您试图将DOM节点序列化为JSON,但这是不可能的。相反,它序列化为空对象。然后您将尝试警告(…)
。当您提醒
一个对象时,它每次都将包含[object object]
JSON.stringify/JSON.parse操作实际上与您的问题无关。它可以很好地处理任何有效的对象,而不是DOM节点
要保存部分DOM节点,可以保存单个标量属性。例如,可以保存innerHtml。根据需要添加其他属性
var o = {
inner: dope.innerHtml
};
建议:
console.log(pla)
alert(JSON.stringify(pla, null, 4));
如果要打印用于调试代码的对象,请尝试以下操作::
console.log(pla)
alert(JSON.stringify(pla, null, 4));
否则,请在出现警报的情况下尝试此操作:
尝试此操作,它将为您提供缩进JSON对象的输出:
console.log(pla)
alert(JSON.stringify(pla, null, 4));
好处:
console.log(pla)
alert(JSON.stringify(pla, null, 4));
- 跨平台支撑
- ECMAScript第5版标准化
- Firefox、Chrome、Safari和IE8中的支持
如果你说的是警报
,那是因为它不知道如何查看它(作为JSON对象),所以它会将它作为stringTry警报(JSON.stringify(pla))返回<代码>警报
不是调试工具!如果你做了console.log(pla)
你会看到你想要的。好的,谢谢,现在我明白为什么它不能工作了。但是你能解释一下我如何将DOM节点更改为一个对象,以便它可以工作吗。