附加使用jQuery选择字段的选项

时间:2013-06-16 15:27:48

标签: javascript jquery dom

我正在使用此代码:

var tempObj = {
    "noselected" : "",
    "option1": "item1",
    "option2": "item2",
    "option3": "item3"
};

$.each(tempObj, function (val, text) {
            $(this).append($('<option />', {
                value: val,
                text: text
            }));
        });

但是当执行该代码时,我得到以下错误:

TypeError: n.createDocumentFragment is not a function
[Break On This Error]   

...eturn t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=...

并且只附加第一个元素。

2 个答案:

答案 0 :(得分:3)

你需要这样做 -

$.each(tempObj, function (val, text) {
    $('<option />', {
        value: val,
        text: text
    }).appendTo('select');
});

演示---> http://jsfiddle.net/zKkXp/2/

截至评论时 - 您是在点击处理程序中执行此操作并尝试使用this内的each访问点击选择,您可以这样做 -

$('select').click(function () {
    var $this = $(this);
    $.each(tempObj, function (val, text) {
        $this.append($('<option />', {
            value: val,
            text: text
        }));
    });
});

演示---> http://jsfiddle.net/zKkXp/4/

答案 1 :(得分:0)

$.each(tempObj, function (val, text) {
    $('select').append($('<option>', { 
        value: val,
        text : text 
    }));
});