簡體   English   中英

如何在jQuery中傳遞動態值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM