jQuery以错误的顺序附加问题

时间:2014-09-16 08:37:08

标签: jquery append

if (cinemaValue == "maxima") {
     if (dayValue=="mon" || dayValue=="tue" || dayValue=="wed" || dayValue=="thu" || dayValue=="fri") {
         var timeByDay = {"na":"--- Select a time ---", 6:"6pm", 9:"9pm"};
     } else if (dayValue=="sat" || dayValue=="sun") {
         var timeByDay = {"na":"--- Select a time ---", 3:"3pm",6:"6pm", 9:"9pm"};
    }
}
$.each(timeByDay, function(value, text){
    $("#time").append(new Option(text, value));
})

我正在尝试将timeByDay附加到一个空的下拉列表中。我希望在下拉列表中有一个带有订单的数据(---选择一个时间---,下午6点,晚上9点)。但是,在我的结果中,---选择一个时间---总是作为列表中的最后一个孩子出现,如(下午6点,晚上9点,---选择时间---)。

有谁知道这个问题?

1 个答案:

答案 0 :(得分:2)

您需要创建一个数组。目前您使用的是不保证密钥顺序的对象。

改变对象,如

 var timeByDay = [{
     text: "--- Select a time ---",
     value: "na"
 }, {
     text: "6pm",
     value: "6"
 }];

然后用它来填充选择。

$.each(timeByDay, function(index, item){
   $("#time").append(new Option(item.text, item.value));
})

DEMO