【发布时间】:2016-02-14 20:02:57
【问题描述】:
我想显示 JSON 文件中的元素。
这是 JSON 文件
"2015": {
"img": "<img src = \"../images/images/images_of_members/image1.jpg\">",
"img2": "<img src = \"../images/images/images_of_members/image2.jpg\">"},
"2016": {
"img": "<img src = \"../images/images/images_of_members/image1.jpg\">",
"img2": "<img src = \"../images/images/images_of_members/image2.jpg\">" }
这是 JavaScript 文件
$.ajax("gallery.json", {
dataType: 'json',
success: function (response) {
$.each(response, function () {
$.each(this, function (i, el) {
$(".photo_target").css('display', 'block');
$(".photo_target").append(el);
});
});
}
});
这是 HTML 文件
<div class="years">
<p data-year="2015">Pictures 1</p>
<p data-year="2016">Pictures 2</p>
</div>
<div class="photo_target"></div>
如果单击属性数据年 2015 的段落,我只想显示对象 2015 中的图片,如果单击属性数据年 2016 年的段落,则显示对象 2016 中的图片。现在它是迭代通过所有对象并显示所有图片,可以在此 JSON 文件中找到。
我应该在 AJAX 调用中进行哪些更改才能使其按我的意愿工作?
谢谢
【问题讨论】:
-
你试过
console.log看看你的$.each循环指的是什么吗? -
在某种程度上取决于您希望如何将所有这些图像加载到页面中。全部加载然后过滤它们?...或者只加载用户想要的?例如,如果有很多图像,则可能需要考虑带宽
-
图片不会太多,都会优化。每张图片的三种不同尺寸,适用于不同的屏幕分辨率。
-
我所做的和工作的,但不幸的是每张图片加载了两张。这是我得到的 $.each(response, function () { $.each(response[number], function (i, el) { ... } 我在响应后添加了 [number] 现在只加载图片我想要。但是每张都加载了两张图片。你知道为什么吗?
标签: javascript jquery json ajax