使用字符串变量调用Javascript对象

使用字符串变量调用Javascript对象,javascript,Javascript,如果我有一个像这样的javascript对象 window.object = { "Element1" : { "startDate" : "-1m", "endDate" : "0d" } }; 我可以使用下面的代码发出警报-1m alert(object.Element1.startDate); 但是,如果Element1是通过一个参数作为字符串提供给我的,该怎么办。如果我必须使用一个变量,我怎么能得到相同的结果?像这样但不正确

如果我有一个像这样的javascript对象

window.object = 
{
    "Element1" :
    {
        "startDate" : "-1m",
        "endDate" : "0d"
    }
};
我可以使用下面的代码发出警报-1m

alert(object.Element1.startDate);
但是,如果Element1是通过一个参数作为字符串提供给我的,该怎么办。如果我必须使用一个变量,我怎么能得到相同的结果?像这样但不正确

var elementId = this.id;
alert(object.elementId.startDate);
试试这个:

object[elementId].startDate
或者,如果
id
是一个数字,这将起作用:

object["Element"+elementId].startDate
试试这个:

object[elementId].startDate
或者,如果
id
是一个数字,这将起作用:

object["Element"+elementId].startDate

您可以使用全局对象

var Element1 = 'boo';

var stringname = 'Element1';
alert(this[stringname]);

第二种方法是,javascript可以打印javascript,打印出来的javascript也会被解释。

您可以使用全局对象
this

var Element1 = 'boo';

var stringname = 'Element1';
alert(this[stringname]);

第二种方法是,javascript可以打印javascript,打印出来的javascript也会被解释。

字符串的格式是什么?字符串的格式是什么?您的第一个答案捕获所有案例。解决方案正在捕获错误,object[elementId]是undefined@gmustudent因此,您的
this.id
有问题,因此在这部分之后:
var elementId=this.id您的
元素ID
未定义。与我为什么有问题无关的问题。我会在一段时间后接受limit@gmustudent没问题,很高兴它起作用了!。您的第一个答案捕获了所有案例解决方案正在捕获错误,对象[elementId]为undefined@gmustudent因此,您的
this.id
有问题,因此在这部分之后:
var elementId=this.id您的
元素ID
未定义。与我为什么有问题无关的问题。我会在一段时间后接受limit@gmustudent没问题,很高兴它起作用了!。如果您使用
窗口
而不是
,则您可以在任何地方访问全局变量,而不仅仅是在全局范围内。“javascript可以打印javascript,并且打印出来的javascript也会被解释”是什么意思?你能举个例子吗?如果你做了
document.write('alert(“boo”);'),它将向您发出警报。我相信,根据上下文的不同,分解脚本标记可能是必要的,也可能不是必要的。如果您使用
窗口
而不是
,那么您可以在任何地方访问全局变量,而不仅仅是在全局范围内。“javascript可以打印javascript,并且打印出来的javascript也会被解释”是什么意思?你能举个例子吗?如果你做了
document.write('alert(“boo”);'),它将向您发出警报。我相信,根据上下文的不同,拆分脚本标签可能是必要的,也可能不是必要的。