您可以使用变量值来指定jquery对象名称吗?

时间:2011-10-03 15:29:14

标签: javascript jquery variables object

我有:

if (!myObj.login_id) { 
    alert("The object for login_id does not exist.");
} else {
    alert("The object for login_id DOES exist. The value of the object is: " + myObj.login_id);
}

这是正常的。对象及其值已经定义。但是,我有多个以ID attr命名的对象。所以,我尝试这样做(例如,这是一个点击事件:

objtitle = $(this).attr('id'); // this is "login_id"

if (!myObj.objtitle) {
    alert("The object for "+objtitle+" does not exist.");   
} else {
    alert("The object for "+objtitle+" DOES exist. The value of the object is: " + myObj.objtitle);
}

当我使用变量作为对象名称时,为什么它会停止工作?

2 个答案:

答案 0 :(得分:10)

使用方括号。

myObj[objtitle]

答案 1 :(得分:4)

有两种方法可以访问对象的属性:点语法和​​方括号语法。这些被称为member operators。所以以下两个是等价的:

obj.foo
obj['foo']

点语法(第一个)是文字名称。因此,obj.objtitle会尝试查找名为objtitle的属性。如果您有一个包含所需属性名称的变量,则必须使用方括号语法。

myObj[objtitle]