将JSON数据附加到HTML元素

时间:2018-03-19 12:02:49

标签: javascript html json call

我正在努力:

  1. 使用$ .get

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

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

    这是我目前的设置:

    (JSON):photoData.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);});
    

1 个答案:

答案 0 :(得分: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>`
  }
});

在评论中提出的内容:$('Photos')不是有效的jQuery选择器。我怀疑你有一个名为Photos的id的元素 - 你只需要将哈希添加到选择器:$('#Photos')

<强> DEMO