[英]How to pass dynamic values in jQuery
我真的不知道該如何正確地稱呼這個問題,對不起造成混亂。 這是我的問題。 我有一個帶有兩個數組的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
值
$.getJSON(jsonURL, function (json)
{
var imgList= "";
$.each(json[txt], function () {
imgList += '<img src="' + this.imgPath + '"/>';
});
$('.container').append(imgList);
});
}
您可以將txt變量放在[]
標記內。 希望它能工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.