2010-10-06 6 views
3

Je pense qu'il est assez clair ce que je veux faire ici:Quel est le problème avec cet objet javascript?

var viewnames = {}; 
viewnames['region-a'] = "Region A"; 
viewnames['region-b'] = "Region B, partial"; 
viewnames['region-c'] = "Region C"; 

function loadView(view_name) { 
    alert('view_name: ' + view_name); 
    alert('viewname: ' + viewnames.view_name); 
    document.getElementById("viewtitle").innerText = view_name; 
} 

Mais si j'appelle cela avec view_name comme region-a l'alerte dit viewnames.view_name est non défini. Quel est le problème?

Répondre

8

Vous devez utiliser viewnames[view_name] dans votre fonction loadView

+0

Merci! Je vais accepter cette réponse lorsque les 10 minutes sont écoulées :) – AP257

+0

Pour clarifier: vous ne pouvez pas utiliser une variable pour la syntaxe d'accesseur de point; vous devez utiliser des accolades. Ainsi, 'viewnames [view_name]' au lieu de 'viewnames.view_name'. – mway

1

Vous devez indexer par nom, par exemple viewnames[view_name]

0

Accédez-y par index de tableau associatif (viewnames[view_name]). Veuillez NE PAS utiliser une construction eval (eval("var tmp = viewnames." + view_name + ";")).

Questions connexes