我需要訪問如何訪問一個動態屬性:對象名{}可變
objectName.myID
而且是動態生成的「身份識別碼」的部分..
我如何做到這一點?
我試圖
this['objectName.'+ variable]
我討厭使用eval ...
PS 這發生在的方式的函數(局部範圍)..
我需要訪問如何訪問一個動態屬性:對象名{}可變
objectName.myID
而且是動態生成的「身份識別碼」的部分..
我如何做到這一點?
我試圖
this['objectName.'+ variable]
我討厭使用eval ...
PS 這發生在的方式的函數(局部範圍)..
您可以訪問Object properties in two ways:
o.propertyname
//or
o.["propertyname"]
當使用括號符號,你必須把引號PROPERTYNAME否則將被視爲一個變量名稱(在你的情況下正是你想要的)。所以你的情況,你所儲存的屬性作爲字符串的名稱,要走的路是:
var variable = "propertyname";
o[variable];
/* /\ variable is replace with it's string representation "propertyname" */
你甚至可以調用的方法是這樣的:
var o = {};
var functionname = 'toString';
o[functionname]();
你可以混合使用兩種符號,你的例子看起來像:
var obj = 'objectName';
var prop = 'myID';
this[obj][prop]
// or this is possible too:
this.objectName[prop]
嗯我以爲我試過這個,它沒有工作..生病再試一次.. tnx一堆 – BrownChiLD 2013-05-07 12:15:41
假設propertyName
是一個變量的名稱保存着屬性的名稱,例如'myId'
,那麼你可以使用。
objectName[propertyName]
更多細節在MDN:Working with objects
對不起,但它仍然錯 - 它應該是'objectName ['propertyName']'... – Christoph 2013-05-07 07:30:50
@Christoph我不同意。如果propertyName是一個包含屬性名稱的變量,如果該名稱是動態的,則應該是這種情況,那麼這是正確的語法。 – 2013-05-07 07:32:02
隨着您的評論添加,意圖是明確的。然而,就目前而言,你的回答意味着'propertyName'是屬性的名稱而不是一個變量,所以這是非常具有誤導性的。如果你想讓它成爲一個社區wiki,你的答案應該是堅如磐石的,而不是像目前那樣含糊不清。 – Christoph 2013-05-07 07:35:53
對不起,但這是非常基本的jQuery,你甚至不似乎是接近。提示:'$(「#foo」)' – 2013-05-07 07:12:20
@Álvaro對不起,Alvaro,但顯然你甚至沒有接近答案... – Christoph 2013-05-07 07:25:33
@Christoph - 那麼,你的編輯已經改變了這個問題的含義不少;-) – 2013-05-07 07:43:43