使用变量值作为jquery / javascript的对象

时间:2013-04-23 14:25:33

标签: jquery variables object raphael

我有类似的东西:

var StateName =  [obj.data('name')];
StateName.click(function(e){ etc....

所以,它给了我正确的名字(德克萨斯州),但它在控制台中说:

Object usa.Texas has no method 'click' 

如果我直接写它:

usa.Texas.click(function(e){ etc....

它有效......

谢谢

1 个答案:

答案 0 :(得分:0)

正如您在评论中指出的那样,obj.data('name')返回一个字符串。您不能像这样访问JavaScript对象,但可以通过传递字符串来访问它的属性。

你可以这样做:

// Get Name, split to extract the property portion
var StateName = obj.data('name').split('.')[1];

// Bind to specific state
usa[StateName].click(......

如果您需要对象的名称(美国),您可以将所有(假设的)国家/地区对象嵌套在另一个对象中。

// Wrap in object
var countries = {usa: { texas: jQuery() }}

// Get Name, split to extract portions
var CountryState = obj.data('name').split('.');
var Country = CountryState[0];
var State = CountryState[1];

// Bind to country / state
countries[Country][State].click(.......