我真的不知道该如何正确地称呼这个问题,对不起造成混乱。这是我的问题。我有一个带有两个数组的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/

10-09 23:49