jQuery中$ .each()的问题

时间:2011-09-28 09:37:03

标签: javascript jquery each json

我希望通过jQuery.each和数据hotel_id从数组中追加一些,每个hotel_id的数字是4,并且此循环$.each(data[0].hotel_id,... });在self内运行4次内容,以防万一数据库行residence_uresidence_p中有或插入3次(每次有3个,而不是4个(如hotel_id)),运行以下代码时,此代码不有错误jus无法正常工作。如果我删除代码$.each(info_ru.units,... });$.each(info_rp.start_date,... });,那么它是否有效:如何解决?

查看完整的我的js代码:[ http://pastebin.com/jBWEDZrN ] [1]

这是我在ajax调用中的js代码(url: 'get_gr',)的摘要:

$.each(data[0].hotel_id, function (index, value) {
    var $li = $('<li><input name="hotel_id[]" value="' + value.hotel_id + '" style="display:none;"></li>');
    var $tooltip = $('<div class="tooltip"></div>').appendTo($li);
    $li.appendTo('#residence_name');

    var info_ru = data[0].residence_u[index];
    $.each(info_ru.units, function (index, value) {
        $tooltip.append(value + ' & ' + info_ru.extra[index] + ' & ' + info_ru.price[index] + '<br>');
    });

    var info_rp = data[0].residence_p[index];
    $.each(info_rp.start_date, function (index, value) {
        $tooltip.append(value + ' & ' + info_rp.end_date[index] + ' & ' + info_rp.price_change[index] + '<br>');
    });
    tool_tip()
});

这是输出php代码(url: 'get_gr',):

[{
    "guide": null,
    "hotel_id": [{
        "hotel_id": ["1"]
    }, {
        "hotel_id": ["2"]
    }, {
        "hotel_id": ["3"]
    }, {
        "hotel_id": ["4"]
    }],
    "residence_u": [{
        "units": ["hello", "how", "what"],
        "extra": ["11", "22", "33"],
        "price": ["1,111,111", "2,222,222", "3,333,333"]
    }, {
        "units": ["fine"],
        "extra": ["44"],
        "price": ["4,444,444"]
    }, {
        "units": ["thanks", "good"],
        "extra": ["55", "66"],
        "price": ["5,555,555", "6,666,666"]
    }],
    "residence_p": [{
        "start_date": ["1111", "2222"],
        "end_date": ["1111", "2222"],
        "price_change": ["1111", "2222"]
    }, {
        "start_date": ["3333", "4444"],
        "end_date": ["3333", "4444"],
        "price_change": ["3333", "4444"]
    }, {
        "start_date": ["5555", "6666"],
        "end_date": ["5555", "6666"],
        "price_change": ["5555", "6666"]
    }]
}]

更新

我在数据库表的一行中插入了几个(array)值和json_encode的值,现在希望用jquery将它们作为顺序回显。

输出js代码是这样的:

  

1
hello&amp; 11&amp; 1,111,111
how&amp; 22&amp; 2,222,222
what&amp; 33   &安培; 3,333,333,
1111&amp; 1111&amp; 1111
2222&amp; 2222&amp; 2222

  

2
fine&amp; 44&amp; 4,444,444
3333&amp; 3333&amp; 3333
4444&amp; 4444&amp; 4444

  

3
thanks&amp; 55&amp; 5,555,555
good&amp; 66&amp; 6,666,666
5555&amp; 5555&amp; 5555
6666&amp; 6666&amp; 6666

  

4

1 个答案:

答案 0 :(得分:0)

您的residence_u中只有3个元素,在residence_p数组中只有2个元素,但原始酒店数组中只有4个元素。是否可以像检查有效的info_ru

一样简单
var info_ru = data[0].residence_u[index];
if ( infor_ru != null ) {
    $.each(info_ru.units, function (index, value) {
        $tooltip.append(value + ' & ' + info_ru.extra[index] + ' & ' + info_ru.price[index] + '<br>');
    });
}

继续每个人之前?