我真的不知道该如何正确地称呼这个问题,对不起造成混乱。这是我的问题。我有一个带有两个数组的JSON文件。
{
"list 1":
[
{
"name": "label1",
"imgPath": "images/list1img1.png"
},
{
"name": "label2",
"imgPath": "images/list1img2.png"
},
]
"list 2":
[
{
"name": "label1",
"imgPath": "images/list12img1.png"
},
{
"name": "label2",
"imgPath": "images/list2img2.png"
},
]
}
我也有一个带有两个文本和一个图像容器的html文件:
<h2>list 1</h2>
<h2>list 2</h2>
<div class="container"></div>
我想单击一个列表,然后使用Jquery将图像从JSON文件加载到容器中。我设法创建了一个可以执行此操作的函数,但是这是我遇到困难的时候。
$document.ready(function () {
$(h2).click(function(e) {
loadJson(e);
}
});
function loadJson(e) {
var jsonURL = "images.json";
var txt = $(e.target).text(); // text from h2 element, it can be list1 or list2
$.getJSON(jsonURL, function (json)
{
var imgList= "";
$.each(json.#################, function () {
imgList += '<img src="' + this.imgPath + '"/>';
});
$('.container').append(imgList);
});
}
代码可以正常工作,但是我想将txt变量(本质上获得JSON数组的名称)放在这些哈希值中。
最佳答案
您必须使用[]
传递动态值
$.each(json[txt], function () {
imgList += '<img src="' + this.imgPath + '"/>';
});
这只会获取
list 1
值关于javascript - 如何在jQuery中传递动态值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32070482/