jQuery追加数组到optgroup跳过第一个选项

时间:2015-01-30 23:00:56

标签: javascript jquery each option optgroup

我有一个像这样的JSON对象:

{"versions":{
    "stable":["1.0","1.1"],
    "work_in_progress":["wip"],
    "branches":["branch1.0","branch1.1"]
}

通过jQuery,我试图将这些数据添加到下拉列表中。我正在迭代“版本”对象的键,将每个键添加为“optgroup”;然后在每个键的数组上进行迭代,并将其作为选项添加到“optgroup”。

渲染时,每个数组的第一个选项都会丢失!

if(items) {
    $.each(items, function(key, value) {
        console.log(key);
        var optGroup = $("<optgroup/>");
        optGroup.attr('label', key);
        $.each(value, function(index, item) {
            console.log("--"+item);
            optGroup.append($("<option/>").val(item).text(item));
        });
        selObj.append(optGroup);
    });
}

其中“items”是“版本”。

在控制台中,我看到所有内容都正确打印出来:

"stable"
--"1.0"
--"1.1"
"work_in_progress"
--"wip"
"branches"
--"branch1.0"
--"branch1.1"

但在下拉列表中,“稳定”的optgroup有1.1; “work_in_progress”optgroup什么也没有,“branches”optgroup只有“branch1.1”

为什么会发生这种情况?!

0 个答案:

没有答案