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

标签 javascript jquery object

我正在尝试创建一个引用多个表单的对象,我可以使用 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/

相关文章:

javascript - chrome.identity.getAuthToken 和刷新 token ?

javascript - 性能: findIndex vs Array.原型(prototype).map

javascript - 如何从控制台查看或输出很长的字符串

java - 在嵌套数组中提取数组 Java

javascript - 使用 flutter/dart/javascript 在网络上打印 PDF

javascript - 将对象数组保存到本地存储不起作用

javascript - 将超链接放入脚本中

javascript - Vue.js - 等到动画完成后再更新组件

jquery - IE7 jquery .each 数组

javascript - 如何使用 CSS 重叠三个 div?