0

这是一个包含座位信息的 json 文件。

var jsondata = {
    "who": "RSNO",
    "what": "An American Festival",
    "when": "2013-02-08 19:30",
    "where": "User Hall - Main Auditorium",
    "seats": ["00000000000000000011111111111111000000000000000000", "0000000000000001111111111111111aaa0000000000000000", "00000000000000aa111111111111111aaaaa00000000000000", "00000000000001111111111111111111111111000000000000", "000000000aa00aaaaaaaaaaaaaaaaaaaaaa1100aa000000000", "00000001111001111111111111111111111100111100000000", "00000aaaaaa0011aaaaaaaaa11111111aaa1100aaaaaa00000", "00001111111001111111111111111111111100111111100000", "000aaaaaaa110011111111111111111111110011aaaaaaa000", "00111111111100111111111111111111111001111111111000", "00aaaaa1111110011111111111111111111001111aaaaaaa00", "11111111111100111111111111111111111001111111111110", "0aaaaaaaaaaaa001111111111111111111100aaaaaaaaaaaa0", "01111111111110011111111111111111110011111111111100", "00000000000000001111111111111111110000000000000000", "01111111111111001111111111111111100111111111111100", "01111111111111001111111111111111110011111111111110", "01111111111111001111111111111111100111111111111100", "00a11111111111100111111111111111100111111111111a00", "00111111111111100111111111111111001111111111111000", "00011111111111110011111111111111001111111111111000", "00111111111111100111111111111111001111111111111000", "00011111111111110011111111111111001111111111111000", "00011111111111110011111111111110011111111111110000", "0000000111a111111001111a1111a110011111111110000000", "00000000111111110011111111111110011111111000000000", "00000000001111111001111111111110011111110000000000", "00000000000000111001111111111100111000000000000000"],
    "rows": ["DD", "CC", "BB", "AA", "Z", "Y", "X", "W", "V", "U", "T", "S", "R", "Q", "P", "N", "M", "L", "K", "J", "H", "G", "F", "E", "D", "C", "B", "A"],
    "seatPrice": ["                  00000000000000                  ", "               0000000000000000000                ", "              0000000000000000000000              ", "             0000000000000000000000000            ", "         00  000000000000000000000000  00         ", "       0000  00000000000000000000000  0000        ", "     000000  000000000000000000000000  000000     ", "    0000000  00000000000000000000000  0000000     ", "   000000000  0000000000000000000000  000000000   ", "  0000000000  000000000000000000000  0000000000   ", "  00000000000  00000000000000000000  00000000000  ", "000000000000  000000000000000000000  000000000000 ", " 000000000000  00000000000000000000  000000000000 ", " 000000000000  0000000000000000000  000000000000  ", "                000000000000000000                ", " 0000000000000  00000000000000000  0000000000000  ", " 0000000000000  000000000000000000  0000000000000 ", " 0000000000000  00000000000000000  0000000000000  ", "  0000000000000  0000000000000000  0000000000000  ", "  0000000000000  000000000000000  0000000000000   ", "   0000000000000  00000000000000  0000000000000   ", "  0000000000000  000000000000000  0000000000000   ", "   0000000000000  00000000000000  0000000000000   ", "   0000000000000  0011111111100  0000000000000    ", "       0000000000  111111111111  0000000000       ", "        00000000  1111111111111  00000000         ", "          0000000  111111111111  0000000          ", "              000  00000000000  000               "],
    "priceLookup": [10, 20] 
};


$.getJSON('jsondata' , function(data) {
    var tbl_body = "";
    $.each(jsondata.seats, function() {
        var tbl_row = "";
        $.each(this, function(k , v) {
            tbl_row += "<td>"+v+"</td>";
        });
        tbl_body += "<tr>"+tbl_row+"</tr>";                 
    });
    $("#plan").html(tbl_body);
});

最后的函数在使用座位布局方面工作正常,但是,我需要将保存的信息作为函数生成的 sseatPrice的类添加。td我已经尝试基本上复制最后一个函数,但对于seatPrice对象并将其附加到表中,但这似乎不起作用。关于我将如何解决这个问题的任何建议?

4

2 回答 2

1

您的代码存在一些问题。$.getJSON()如果您已经拥有数据,为什么还需要jsondata?如果你真的是从 AJAX 调用中获取这些数据,那很好,但是你需要data在函数中引用,而不是jsondata,或者将参数重命名为匿名函数。

传递给函数的第一个参数$.each()是数组的索引。您可以使用它来获取seatPrice相同索引的:

$.each(jsondata.seats, function (j, d) {
    var tbl_row = "";
    $.each(this, function (k, v) {
        var seatPrice = jsondata.seatPrice[j][k];
        var seatPriceClass = '';
        if(seatPrice == "0") {
             seatPriceClass = "notawesome";  
        } else if(seatPrice == "1") {
             seatPriceClass = "awesome";   
        } else {
             seatPriceClass = "none";   
        }
        tbl_row += "<td class='"+seatPriceClass+"'>" + v + "</td>";
    });
    tbl_body += "<tr>" + tbl_row + "</tr>";
});

演示:http: //jsfiddle.net/jtbowden/pJhgK/

于 2013-03-08T02:06:45.403 回答
0

似乎您使用 $.each() 循环使问题复杂化。正如 popnoodles 所说,您可以使用香草 for 循环。

这是你想要的吗?

$.getJSON('jsondata' , function(data) {
    var tbl_body = "";
    var tbl_row = "";

    for (var i in data.seats){
        tbl_row += "<td>"+i+"</td>";
    }


    for (var i in data.seatPrice){
        tbl_row += '<td class="' + i + '">this is a td</td>';
    }

    tbl_body += "<tr>"+tbl_row+"</tr>";   

    $("#plan").html(tbl_body);
});
于 2013-03-08T02:03:53.547 回答