gpt4 book ai didi

javascript - 在 Javascript/jQuery 中动态添加变量名作为对象的一部分

转载 作者:行者123 更新时间:2023-11-30 13:06:57 28 4
gpt4 key购买 nike

我正在尝试创建一个引用多个表单的对象,我可以使用 JSON.stringify() 通过单个 AJAX 请求将其发送到验证脚本,但我做不到似乎正确命名了对象内部的数组,随着数组(表单)数量的增加,它应该是递增计数。

var images = new Object();
var i = 0;

// loop through every form
$('form').each(function() {
var form = $(this);

images[i].name = form.find('input[name="name"]').val();
images[i].description = form.find('textarea[name="description"]').val();

// etc.

i++;
});

因此,当经过两到三次迭代(即它经历了两到三种形式)后完成时,我有一个类似于此的 Javascript 对象(用伪代码编写,我不太确定它实际是如何输出的):

images {
0 {
name : 0thImageNameValueHere,
description : 0thImageDescripValueHere,
etc : etc
}

1 {
name : 1stImageNameValueHere,
description : 1stImageDescripValueHere,
etc : etc
}
}

但是,现在,Firebug 给我一个 SyntaxError: missing ; before statement 错误,以这一行为中心:

images[i].name = form.find('input[name="name"]').val();

现在,我可以将 images[i].name 的“值”更改为我喜欢的任何值 (images[i].name = 'yes') 并且我仍然遇到同样的错误。从句法上讲,我没有遗漏任何分号,所以不可能是这样。有没有可能我没有正确声明我的对象?

最佳答案

Images 是一个数组 ([])。您的语法不符合这种情况(您需要一个对象)。为数组中的每一项创建一个对象,然后您可以为该对象的属性赋值。

此外,您可以只使用 jQuery 提供的 index 参数,而不必创建自己的迭代器。

这就是你想要的:

var images = []; // create an array

$('form').each(function( index ) {
var form = $(this);
// create object with {} object notation
var image = {
name: form.find('input[name="name"]').val(),
description: form.find('textarea[name="description"]').val()
};
images[index] = image; // append object in array position index;
}

有关对象的更多信息,请参阅 JSON WIKI .有关数组的更多信息,请参见 W3Schools .

关于javascript - 在 Javascript/jQuery 中动态添加变量名作为对象的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15358342/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com