Javascript 将jQuery对象存储在数组/对象中

Javascript 将jQuery对象存储在数组/对象中,javascript,jquery,Javascript,Jquery,我想创建一个包含jQuery对象的JS数组,如下所示: var oFormFields = new Object; oFormFields.label = $(document.createElement('label')); oFormFields.input = $(document.createElement('input')); var oFormFields = new Object; oFormFields.name_field.label = $(document.createE

我想创建一个包含jQuery对象的JS数组,如下所示:

var oFormFields = new Object;
oFormFields.label = $(document.createElement('label'));
oFormFields.input = $(document.createElement('input'));
var oFormFields = new Object;
oFormFields.name_field.label = $(document.createElement('label')).addClass('nam_field');
oFormFields.name_field.input = $(document.createElement('input')).addClass('nam_field');
var oFormFields = {
  label: $('<label />'),
  input: $('<input />')
};
由于这会使我的代码崩溃,我认为这是不可能的。还有别的选择吗?这是我的简化版本,我希望包含一些其他属性,以便在构建动态表单时能够在代码中重用这些属性

编辑:看来这毕竟奏效了。。。我想做的事情是这样的:

var oFormFields = new Object;
oFormFields.label = $(document.createElement('label'));
oFormFields.input = $(document.createElement('input'));
var oFormFields = new Object;
oFormFields.name_field.label = $(document.createElement('label')).addClass('nam_field');
oFormFields.name_field.input = $(document.createElement('input')).addClass('nam_field');
var oFormFields = {
  label: $('<label />'),
  input: $('<input />')
};
这确实破坏了我的密码。我是jQuery的新手,来自PHP背景,在调整使用数组/对象的正确方式时遇到了一些问题。

只需像这样使用它:

var oFormFields = new Object;
oFormFields.label = $(document.createElement('label'));
oFormFields.input = $(document.createElement('input'));
var oFormFields = new Object;
oFormFields.name_field.label = $(document.createElement('label')).addClass('nam_field');
oFormFields.name_field.input = $(document.createElement('input')).addClass('nam_field');
var oFormFields = {
  label: $('<label />'),
  input: $('<input />')
};
formfields的变量={
标签:$(''),
输入:$('')
};
你可以。此外,如注释中所述,您应该更喜欢对象文字符号而不是
新的
语法。

如下所示:

var oFormFields = new Object;
oFormFields.label = $(document.createElement('label'));
oFormFields.input = $(document.createElement('input'));
var oFormFields = new Object;
oFormFields.name_field.label = $(document.createElement('label')).addClass('nam_field');
oFormFields.name_field.input = $(document.createElement('input')).addClass('nam_field');
var oFormFields = {
  label: $('<label />'),
  input: $('<input />')
};
var arr = [];
var oFormFields = {};
oFormFields.label = $('<label/>');
oFormFields.input = $('<input/>');

arr.push(oFormFields);
.........
formfields的变量={
标签:$(''),
输入:$('')
};
你可以。此外,如注释中所述,您应该更喜欢对象文字符号而不是
new
语法。

var arr=[];
var arr = [];
var oFormFields = {};
oFormFields.label = $('<label/>');
oFormFields.input = $('<input/>');

arr.push(oFormFields);
.........
ormfields的var={}; oFormFields.label=$(''); oFormFields.input=$(''); arr.push(oFormFields); .........
var arr=[];
ormfields的var={};
oFormFields.label=$('');
oFormFields.input=$('');
arr.push(oFormFields);
.........

此代码工作正常。它不会崩溃。但是,请不要使用“新对象”-使用字面版本{}。@johannesle出于好奇,他为什么不应该使用新对象呢?如果这就是你要问的,那也没有什么坏处。只是{}更简洁,事实上,“新对象”和“{}”做的事情完全相同——如果使用文本版本,则在幕后调用构造函数。在这种情况下,与其说是有害,不如说是清晰的编码风格;)@bo oz:您更新的示例中断了,因为您试图在“name_字段”上设置“label”和“input”,而“name_字段”并不存在。如果您像在接受的答案中一样使用对象文字,您会立即注意到错误:)这段代码工作得非常好。它不会崩溃。但是,请不要使用“新对象”-使用字面版本{}。@johannesle出于好奇,他为什么不应该使用新对象呢?如果这就是你要问的,那也没有什么坏处。只是{}更简洁,事实上,“新对象”和“{}”做的事情完全相同——如果使用文本版本,则在幕后调用构造函数。在这种情况下,与其说是有害,不如说是清晰的编码风格;)@bo oz:您更新的示例中断了,因为您试图在“name_字段”上设置“label”和“input”,而“name_字段”并不存在。如果你像在被接受的答案中那样使用对象文字,你会立即注意到错误:)@Mr_Green Yes,没有理由不这样做。对象属性可以是函数,函数可以返回对象。不过,您显然需要先初始化表单字段的
。@AnthonyGrist感谢您的回复。谢谢。。我想问题是我使用了不同的符号。我想将所有标签和字段存储在一个数组中。我将更新代码以反映这一点。@Mr_Green是的,没有理由不这样做。对象属性可以是函数,函数可以返回对象。不过,您显然需要先初始化表单字段的
。@AnthonyGrist感谢您的回复。谢谢。。我想问题是我使用了不同的符号。我想将所有标签和字段存储在一个数组中。我将更新代码以反映这一点。。