2016-05-19 6 views
0

Ich habe ein HTML-Formular (Dropdown), das ein Land, z. "VEREINIGTES KÖNIGREICH". Dieser Wert wird dann in eine Funktion, die ich den Typ des Landes in HTML angezeigt werden soll, indem es globalen Variable mit dem gleichen Namen übereinstimmt, gefundenJS: Wie passe ich eine Parametereingabe zu einer Funktion an ein globales Objekt nach Namen an?

var UK = { country: 'UK', type: 'European' } 
function showCountry(arg1){ 
    document.getElementById("country").innerHTML = arg1.type; 
} 

Die oben nicht aus irgendeinem Grunde arbeiten. Es ist klar, dass die Verwendung des gleichen Parameternamens als globales Objekt in der Hoffnung, dass die beiden übereinstimmen, nicht funktioniert. Ich frage mich:
1. Was ist der zugrunde liegende Grund,
2. Wie kann ich die Parametereingabe auf eine globale Variable mit dem gleichen Namen?

+1

Bitte erstellen Sie eine JSFiddle über das Problem. –

+0

Verwenden Sie 'window [arg1] .type ', wenn Ihre globale Variable wirklich global ist. – TAGraves

+1

Ich folge nicht ... Könntest du mehr Code posten, um in Kontext zu setzen, was du fragst ... –

Antwort

2

Es wäre besser, ein Objekt mit Schlüsseln und Werten zu haben, die dem Ländercode entsprechen, der an die Funktion übergeben wird. Was Sie in Ihrem Beispiel tun, ist die Suche nach .typearg1, die eine Zeichenfolge ist keine Variable. Deshalb funktioniert es nicht.

var countries = { 
    UK: { 
     country: 'UK', 
     type: 'European' 
    } 
}; 

function showCountry(arg1) { 
    document.getElementById("country").innerHTML = countries[arg1].type; 
} 
Verwandte Themen