我正在尝试构建一个包含每个表单元素的所有值的数组。警报只是找到了,但在 console.log 上数据是空的,我是不是不明白 javascript 中的作用域是如何工作的?
var data = new Array();
$("#page2 input").each(function(index) {
alert($(this).attr('id'));
data[$(this).attr('id')] = $(this).val();
});
非常感谢您的宝贵时间,
最佳答案
需要知道的一件事是 JavaScript 中的 Array
只能有正整数索引(实际上被视为字符串)。
当您将字符串分配给键时,您是在将属性分配给对象
。
你可能想要这样的东西......
var data = {};
$("#page2 input").each(function() {
data[this.id] = this.value;
});
jsFiddle .
如果您只需要 id
属性。
var data = $("#page2 input").map(function() {
return this.id;
}).get();
jsFiddle .
关于javascript - 每个中的 jQuery 变量范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6025037/