2012-07-29 64 views
0

我爲我的網站使用jquery,我有一個按鈕被按下時需要調用的變量列表。基本上,我需要從類名確定變量! :(查找並運行類中的變量?

例如:http://jsfiddle.net/shannonhochkins/f6dLQ/

所以它返回「網站」,這也就是變量「網站」的類名,但我需要後來不知怎的確定使其等於變量不是字符串「網站「?

請幫幫忙!

+0

像這樣http://jsfiddle.net/f6dLQ/1/ – Musa 2012-07-29 05:53:16

+0

你,先生,是驚人的! – Shannon 2012-07-29 06:04:21

回答

1

如果您在全局範圍內聲明的變量,即沒有任何功能,這將是窗口對象的屬性,並且可以輕鬆地檢索

$(document).ready(function(){ 
    $('body a').click(function() { 
     var name = $(this).attr('class'); 
     alert(window[name]); 
    }); 
});  

var website = "http://journal.shannonhochkins.com/"; 

http://jsfiddle.net/f6dLQ/3/

1

雖然穆薩的解決方案將工作,這似乎是糟糕的設計。我建議你做一個表映射類名來的數據:

var class_table = { 
    website: "http://journal.shannonhochkins.com/", 
    ... 
} 

然後用alert(class_table[name])

+0

爲什麼這實際上工作?如果你不介意我問什麼使這項工作成功?爲什麼你不必把它稱爲「var」,爲什麼它必須有「window [name]」? – Shannon 2012-07-29 06:34:48

+0

我認爲你的問題是關於Musa的答案,而不是我的答案。解釋是所有的全局變量都會自動產生屬性窗口和Javascript中的對象可以用作關聯數組(例如object [「foo」]等同於object.foo)。 – Barmar 2012-07-30 06:08:35