【问题标题】:Appending JSON data to an HTML element将 JSON 数据附加到 HTML 元素
【发布时间】:2018-08-27 23:40:04
【问题描述】:

我正在尝试:

  1. 使用 $.get 获取 JSON 数据

  2. 将该数据附加到 HTML 元素 $('photos') 以便使用外部 JSON 文件而不是内联 HTML 显示图像。

我没有收到任何控制台错误,也没有显示图像。任何帮助将不胜感激。非常感谢。我有一个警报来检查 JSON 是否已加载,并且加载正常 - 只是不会更改任何数据。

这是我目前的设置:

(JSON):照片数据.json

{  "photos": {
"1": {
  "href": "./photos/photo1.JPG",
  "src": "photos/photo1.JPG",
},
"2": {
  "href": "./photos/photo2.JPG",
  "src": "photos/photo2.JPG",
},
"3": {
  "href": "./photos/photo3.JPG",
  "src": "photos/photo3.JPG",
},
"4": {
  "href": "./photos/photo4.JPG",
  "src": "photos/photo4.JPG",
},
"5": {
  "href": "./photos/photo5.JPG",
  "src": "photos/photo5.JPG",
}}}

jQuery:

$.get("./data/photoData.json", function(photos){
alert("Data Loaded: " + photos);
let htmlStr = "";
for (let i = 0; i < photos.length; i++){
    htmlStr += `<figure><a href="${photos[i].href}"><img src = "${photos[i].src}"></img></a></figure>`
}
$('Photos').html(htmlStr);});

【问题讨论】:

  • photos 实际上是一个对象时,您正在使用photos.length。请改用for..in
  • 是否显示警报语句?
  • $('照片').html(htmlStr);不是有效的选择器 add 。一个类或 # 一个你的 div 的 id
  • 你在警告框中得到了什么。你也可能想在回调中使用 JSON.parse(photos) !!!
  • 所有现代浏览器都支持模板文字,@FaizKhan。

标签: javascript html json call


【解决方案1】:

photos 是对象而不是数组的对象。所以请改用for...in

$.get("./data/photoData.json", function(data) {
  const photos = data.photos;
  let htmlStr = '';
  for (let photo in photos) {
    htmlStr += `<figure><a href="${photos[photo].href}"><img src="${photos[photo].src}"></img></a></figure>`
  }
});

在 cmets 中提出了一些问题:$('Photos') 不是有效的 jQuery 选择器。我怀疑您有一个 id 名为 Photos 的元素 - 您只需将哈希添加到选择器:$('#Photos')

DEMO

【讨论】:

  • 我想我明白了?我已经用你的解决方案调整了代码,但我仍然没有得到任何结果。你的 JSFiddle 也可能坏了,我也没有得到结果。抱歉,如果这里有什么东西让我头疼...我还收到以下与您当前的解决方案:标识符'照片'已经被声明虽然我在我的代码中看不到我声明它的任何地方......
  • 打开您的开发控制台以查看小提琴中的结果。此外,请记住,您返回的数据是一个对象,该对象具有一个名为 photos 的对象。我已经用你的休息电话更新了我的答案。也许你能更好地理解发生了什么。
  • 非常感谢安迪,这肯定有助于澄清我哪里出错了。感谢您的帮助!
猜你喜欢
  • 2019-08-05
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 2014-11-05
  • 1970-01-01
  • 2023-01-16
  • 2013-07-17
  • 1970-01-01
相关资源
最近更新 更多