Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中创建新的对象元素?_Javascript_Jquery_Object_Element - Fatal编程技术网

如何在Javascript中创建新的对象元素?

如何在Javascript中创建新的对象元素?,javascript,jquery,object,element,Javascript,Jquery,Object,Element,我正在努力理解我做错了什么 我有一个空对象: if ( doc._attachments === undefined ){ doc._attachments = {}; } var attmtid = 123; 我正在尝试这样填充: doc._attachments[attmtid].revpos = "abc"; 但是,我不断从Firebug得到一个未定义的错误: doc._attachments[attmtid] is undefined 我真的搞不懂 问题: 有人能告诉我我做

我正在努力理解我做错了什么

我有一个空对象:

if ( doc._attachments === undefined ){
    doc._attachments = {};
}
var attmtid = 123;
我正在尝试这样填充:

doc._attachments[attmtid].revpos = "abc";
但是,我不断从Firebug得到一个未定义的错误:

doc._attachments[attmtid] is undefined
我真的搞不懂

问题:
有人能告诉我我做错了什么吗

谢谢

为什么不:

doc._attachments[attmtid] = {
    revpos: "abc"
};

doc.\u附件[attmtid]
未定义,这意味着您需要将其定义为某种东西。数组、对象、字符串等。例如,您可以将其设为另一个对象:

doc._attachments[attmtid] = {};
然后可以设置该对象的属性:

doc._attachments[attmtid].revpos = "abc";

doc.\u附件[attmtid]
未初始化为对象,因此无法动态分配revpos属性

这应该解决它:

doc._attachments[attmtid] = {};
doc._attachments[attmtid].revpos = "abc";

注意:这是基于您希望使用
doc.\u attachments.123
属性(这是问题中的示例代码将创建的)而不是
doc.\u attachments.attmid
属性的期望。我明白了。谢谢你的提示!好啊我得到了它。我想我需要同时定义
\u doc.attachments
\u doc.attachments[123]
,这很有意义,因为我需要跟踪单个文档的不同附件。@在初始化之前,您可能希望执行相同的
未定义的
检查
\u doc.attachments[attmtid]
,这样您就不会覆盖其他属性了。@frequency-yes,您知道了。不能在未定义的对象上到处设置属性。例如:
varx={};x、 y.z=1不起作用。可能要先检查
文档附件[attmtid]
是否
未定义
-仅当它是时,然后用
{}
初始化它。然后始终设置
revpos
属性。