2011-10-03 57 views
1

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

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); 
} 

为什么它停止工作时,我使用一个变量为对象的名称

+1

'if(!myObj [this.id]){...' –

回答

9

使用方括号

myObj[objtitle] 
+0

谢谢!你如何在这里做+代表? – Oseer

+0

+ rep?你的意思是投票吗? –

+0

只是看我如何能够感谢有人帮助我在这里。我点击“这个信息是有用的”和“这是你接受的答案”......也感谢寂寞! – Oseer

3

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

obj.foo 
obj['foo'] 

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

myObj[objtitle] 
相关问题