jQuery .each 与 jQuery select追加冲突

发布于 2024-11-05 12:57:05 字数 643 浏览 0 评论 0原文

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

这是我的键/值对数组:

var map = { “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]));
    }

I'm simply adding options to a select tag (aka dropdown list). Why doesn't the second loop work? I will have to spend some time debugging jQuery, but if until I spend too much time, I figured I'd post this and move on to a new task.

Here's my key/value pair array:

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

This doesn't work:

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

This works:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

放血 2024-11-12 12:57:05

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

试试这个:

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

In jQuery.each the this variable within the callback contains the current element, not whatever value it had in your outer scope.

Try this:

var that = this;
jQuery.each(map, function(key, val) {
    jQuery(that.Elements.DDLTest).append(jQuery("<option></option>").val(key).text(val)); 
});
伤痕我心 2024-11-12 12:57:05

第一个示例中的 this 已更改上下文; this 引用 map 引用,并且由于它没有 Elements 属性,因此失败。

The this in your first example has changed context; the this refers to the map reference, and since it doesnt have an Elements property, it fails.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文