jQuery .each 与 jQuery select追加冲突
我只是将选项添加到选择标签(也称为下拉列表)。为什么第二个循环不起作用?我将不得不花一些时间调试 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 jQuery.each 中,回调中的 this 变量包含当前元素,而不是它在外部作用域中的任何值。
试试这个:
In
jQuery.each
thethis
variable within the callback contains the current element, not whatever value it had in your outer scope.Try this:
第一个示例中的
this
已更改上下文;this
引用map
引用,并且由于它没有Elements
属性,因此失败。The
this
in your first example has changed context; thethis
refers to themap
reference, and since it doesnt have anElements
property, it fails.