我正在使用此代码:
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=...
并且只附加第一个元素。
答案 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
}));
});