Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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 - Fatal编程技术网

Javascript 按名称获取对象

Javascript 按名称获取对象,javascript,jquery,Javascript,Jquery,我正在构建我认为有点复杂的东西,但我已经意识到它不能以我想要的方式工作,所以我在这里 下面是我正在做的一个例子 ITEM1: { prop1: 'desc1', prop2: 'desc2', }, ITEM2: { prop1: 'desc1', prop2: { SUBITEM1: { prop1: 'desc1', prop2: 'desc2', prop3: 'desc3' } } } 现在,如果我执行以下操作,这

我正在构建我认为有点复杂的东西,但我已经意识到它不能以我想要的方式工作,所以我在这里

下面是我正在做的一个例子

ITEM1: {
  prop1: 'desc1',
  prop2: 'desc2',
},
ITEM2: {
  prop1: 'desc1',
  prop2: {
    SUBITEM1: {
      prop1: 'desc1',
      prop2: 'desc2',
      prop3: 'desc3'
    }
  }
}
现在,如果我执行以下操作,这将非常有效

ITEM2.prop2.SUBITEM1.prop1;
问题是我不能做
ITEM2.prop2.SUBITEM1
我需要按以下方式做

ITEM2.prop2["SUBITEM1"].prop1
这个项目还很年轻,所以如果需要重建整个列表来正确完成这个任务,我不介意


我希望这是有意义的。

您想要单独的对象吗?我猜您缺少
var
关键字。在这种情况下,您还必须删除一个额外的逗号。试试这个:

var ITEM1 = {
  prop1: 'desc1',
  prop2: 'desc2',
};
var ITEM2 = {
  prop1: 'desc1',
  prop2: {
    SUBITEM1: {
      prop1: 'desc1',
      prop2: 'desc2',
      prop3: 'desc3'
    }
  }
};
console.log(ITEM2.prop2.SUBITEM1.prop1); // Works!

你到底试了什么?它在Chrome中也是如此。你的信息截图

文本表示:

ITEM1= {
  prop1: 'desc1',
  prop2: 'desc2',
},
ITEM2= {
  prop1: 'desc1',
  prop2: {
    SUBITEM1: {
      prop1: 'desc1',
      prop2: 'desc2',
      prop3: 'desc3'
    }
  }
}
Object
ITEM2.prop2.SUBITEM1.prop1;
"desc1"
ITEM2.prop2["SUBITEM1"].prop1
"desc1"

有什么问题吗?prop2[“SUBITEM1”]。prop1应该可以很好地工作。您实际试用过吗
ITEM2.prop2.SUBITEM1
完全等同于
ITEM2.prop2[“SUBITEM1”]
。如果你愿意,你甚至可以做'ITEM2[“prop2”][“SUBITEM1”],我发现了这个问题。真的没有错。。。我忘了修剪字符串,所以它试图执行
ITEM2.prop2[“SUBITEM1”]。
@Robert这将是未定义的,因为它不是数组。@Jai我们在这里讨论的是javascript…呃。。。它不使用
var
,也不使用逗号。OP中的代码语法无效。如果您在第1项中谈论的是
'desc2'
之后的逗号,它将导致IE出现问题。不过,我忘了它是在哪个版本中修复的。我认为这在IE7中是个问题,也许在IE8中也是如此。不仅如此,我的意思是
something:{}
一开始就不是有效的语法
var x={something:{}}
就可以了。@RobertE.McIntosh关于IE的观点很好!(我真是糟透了!)非常感谢。我会尽快接受。真不敢相信我竟然忘了删除空格…啊,我以前没看到你的答案。您将
ITEM1:
替换为
ITEM1=
,就像我一样。这就是它起作用的原因。所以,这不是“这样”,是的。甚至我也面临同样的语法错误我忘了添加顶层,它是
options={}
,这是我的错。