我有:
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);
}
当我使用变量作为对象名称时,为什么它会停止工作?
答案 0 :(得分:10)
使用方括号。
myObj[objtitle]
答案 1 :(得分:4)
有两种方法可以访问对象的属性:点语法和方括号语法。这些被称为member operators。所以以下两个是等价的:
obj.foo
obj['foo']
点语法(第一个)是文字名称。因此,obj.objtitle
会尝试查找名为objtitle
的属性。如果您有一个包含所需属性名称的变量,则必须使用方括号语法。
myObj[objtitle]