【发布时间】:2017-11-30 10:27:30
【问题描述】:
我有一些 JSON 数据,我想用特定键(这些键是名称、链接 URL、图像和价格)在页面上呈现。我用 jsonData 的 id 制作了一个简单的 div,并将 JSON 数据弹出到一个变量中,但是,由于某种原因,我不断得到 p>
未捕获的类型错误:无法读取 null 的属性“innerHTML”
我猜我在某个地方有拼写错误,我也失明了?
关于如何将这些数据放入 div 有什么建议吗?
这是我的 HTML
<body>
<div id="jsonData"></div>
</body>
这是我的 JS
var obj = {
'placements': [
{
'id': '029148',
'name': 'Woodblock Play Suit',
'linkURL':'http://www.warehouse.co.uk/gb/just-arrived/all/woodblock-play-suit/029148.html',
'imageURL':'http://demandware.edgesuite.net/aaxe_prd/on/demandware.static/-/Sites-WAREHOUSE/default/dw0f93fcd4/images/hi-res/warehouse_02914899_2.jpg',
'price':'46.00'
},
{
'id':'0294526806',
'name':'Smock Dress',
'linkURL':'http://www.warehouse.co.uk/gb/just-arrived/all/smock-dress/0294526806.html',
'imageURL':'http://demandware.edgesuite.net/aaxe_prd/on/demandware.static/-/Sites-WAREHOUSE/default/dwc9d5ea05/images/hi-res/warehouse_02945268_5.jpg',
'price':'39.00'
},
{
'id':'0297180006',
'name':'Cami',
'linkURL':'http://www.warehouse.co.uk/gb/just-arrived/all/cami/0297180006.html',
'imageURL':'http://demandware.edgesuite.net/aaxe_prd/on/demandware.static/-/Sites-WAREHOUSE/default/dw4b954022/images/hi-res/warehouse_02971800_2.jpg',
'price':'9.00'
},
{
'id':'0298473606',
'name':'Asymmetric Wrap Cami Dress',
'linkURL':'http://www.warehouse.co.uk/gb/just-arrived/all/asymmetric-wrap-cami-dress/0298473606.html',
'imageURL':'http://demandware.edgesuite.net/aaxe_prd/on/demandware.static/-/Sites-WAREHOUSE/default/dw686fea84/images/hi-res/warehouse_02984736_2.jpg',
'price':'46.00'
},
{
'id':'0297155306',
'name':'Casual Stripe Tee',
'linkURL':'http://www.warehouse.co.uk/gb/just-arrived/all/casual-stripe-tee/0297155306.html',
'imageURL':'http://demandware.edgesuite.net/aaxe_prd/on/demandware.static/-/Sites-WAREHOUSE/default/dw4609af3e/images/hi-res/warehouse_02971553_2.jpg',
'price':'16.00'
}
]
};
var divId = document.getElementById('jsonData');
for(var i=0;i<obj.placements.length;i++)
for(var keys in obj.placements[i]){
console.log(keys +obj.placements[i][keys]);
divId.innerHTML = divId.innerHTML + '<br/>'+ keys + obj.placements[i][keys];
}
【问题讨论】:
-
当您的脚本运行
document.getElementById('jsonData')时,<div id="jsonData"></div>还不存在。要么将脚本移动到 div 之后,要么将最后几行包装在一个函数中,并在文档加载后调用它。 -
如果以下答案之一回答了您的问题,本网站的工作方式,您将“接受”答案,更多信息请点击此处:What should I do when someone answers my question? 。但前提是你的问题真的得到了回答。如果没有,请考虑在问题中添加更多详细信息。
标签: javascript jquery html json