使用DOM方法将JSON打印到HTML(Javascript)
我试图使用DOM方法来显示我在.js文件中创建的JSON对象,我需要在HTML页面中显示它。 这就是我的代码看起来的样子,它不起作用使用DOM方法将JSON打印到HTML(Javascript),javascript,html,json,object,dom,Javascript,Html,Json,Object,Dom,我试图使用DOM方法来显示我在.js文件中创建的JSON对象,我需要在HTML页面中显示它。 这就是我的代码看起来的样子,它不起作用 function JSONMethod(){ carInfo = {"make":"BMW", "model":"M5","mear":"2017","color":"Black"}; myJSON = JSON.stringify(carInfo); localStorage.setItem("theJSON", myJSON);
function JSONMethod(){
carInfo = {"make":"BMW", "model":"M5","mear":"2017","color":"Black"};
myJSON = JSON.stringify(carInfo);
localStorage.setItem("theJSON", myJSON);
text = localStorage.getItem("theJSON");
obj = JSON.parse(text);
for(var i = 0; i < obj.length; i++)
{
var para = document.createElement("li");
var node = document.createTextNode(obj[i]);
para.appendChild(node);
var element = $("display");
element.appendChild(para);
}
}
我不清楚为什么您要保存到
localStorage
,然后从中读取,或者对对象进行字符串化,然后重新设置其大小。使用.textContent
和Array#forEach
等结构,您上面给出的大部分代码都可以被删除或大幅缩减
然而,潜在的问题是,不能使用for循环和索引对常规对象进行迭代。您必须使用内置的Object.keys
之类的函数来获取其所有属性,然后对其进行处理
函数JSONMethod(carInfo){
Object.keys(carInfo).forEach(函数(k){
var li=document.createElement(“li”)
li.textContent=k+':'+carInfo[k]
这个孩子(李)
},document.getElementById('display'))
}
JSONMethod({
“制造”:“宝马”,
“型号”:“M5”,
“mear”:“2017年”,
“颜色”:“黑色”
})
1)您可能指的是$('#display)
或其他有效的选择器。2) 对象没有length
属性。试试看。3) 所有这些本地存储的东西对你的问题来说都是完全多余的。实际上,我一直都在使用$(“display”),而且它似乎在工作。我经常看到有人评论说要加上“#”。为什么会这样?$函数只返回window.document.getElementById(theId)对不起,我以为您使用的是jQuery。我不建议依赖定义的$
。似乎只有Chrome和Firefox才能做到~不用担心,我应该澄清一下$function是什么。谢谢你!哦,好的,好的,是的,我从w2schools.com上得到的存储东西。现在我意识到并找到了其他链接,存储也不再是必要的了。我会尝试用你的答案重新排列我的代码,看看它是否有效!谢谢
function $(theId){
return window.document.getElementById(theId);
}