【问题标题】:jQuery .each conflicts with jQuery select appendjQuery .each 与 jQuery 选择追加冲突
【发布时间】:2011-08-20 09:47:42
【问题描述】:

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

这是我的键/值对数组:

var 映射 = { “10”:“十”, “11”:“十一”, “12”:“十二” };

这不起作用:

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

这行得通:

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

【问题讨论】:

    标签: jquery select append


    【解决方案1】:

    jQuery.each 中,回调中的this 变量包含当前元素,而不是它在外部范围内的任何值。

    试试这个:

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

    【讨论】:

      【解决方案2】:

      第一个示例中的 this 已更改上下文; this 指的是 map 引用,因为它没有 Elements 属性,所以它失败了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-26
        • 1970-01-01
        • 2011-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多