jQuery .each与jQuery select的追加冲突

Mac*_*ver 1 jquery select append

我只是将选项添加到选择标记(也称为下拉列表).为什么第二个循环不起作用?我将不得不花一些时间来调试jQuery,但如果我花费太多时间,我想我会发布这个并继续执行新任务.

这是我的键/值对数组:

var map = {"10":"ten","11":"11","12":"12"};

这不起作用:

    jQuery.each(map, function(key, val) {
        jQuery(this.Elements.DDLTest).append(jQuery("<option></option>").val(key).text(val)); 
    });
Run Code Online (Sandbox Code Playgroud)

这有效:

    for (key in map) {
        jQuery(this.Elements.DDLTest).append(jQuery("<option></option>").val(key).text(map[key]));
    }
Run Code Online (Sandbox Code Playgroud)

Aln*_*tak 5

在回调中jQuery.eachthis变量中包含当前元素,而不是它在外部作用域中的任何值.

试试这个:

var that = this;
jQuery.each(map, function(key, val) {
    jQuery(that.Elements.DDLTest).append(jQuery("<option></option>").val(key).text(val)); 
});
Run Code Online (Sandbox Code Playgroud)