2014-06-05 93 views
1

我有按城市劃分提供就業機會,在這裏看到一個<select>如何使用函數結果調用變量名稱?

<select id="jobs"> 
    <option value="columbus">Columbus, OH: Material Handler</option> 
    <option value="columbus">Columbus, OH: Fulfillment Center Worker</option> 
    <option value="baltimore">Baltimore, MD: Material Handler</option> 
    </select> 

,我拉的價值爲這樣:

var jobName = document.getElementById("jobs").value; 

返回結果就好了。對於第一種選擇,我得到:

columbus 

這是偉大的,現在我的問題是,我怎麼用它來調用另一個變量,例如:

var columbus = ['Columbus','3500 Southwest Blvd',', 8 am to 3:30 pm'], 
    baltimore = ['Baltimore','913 Old Philadelphia Rd',', 8 am to 3 pm'], 
    currentCity = columbus[0] 
console.log(currentCity); 

控制檯將返回:

Columbus 

但是,我怎麼使用jobName更新currentCity動態,如:

currentCity = jobName[0] 
+1

Just'currentCity = jobName'? 'jobName'不是一個數組,它是一個字符串。 –

+0

好吧,這很好,謝謝,但我怎麼用這種方法調用數組中的第二個字符串? –

回答

2

而不是具有不同的變量,你應該使用一個對象來保存所有城市的信息,像這樣:

var cities = { 
    colombus: ['Columbus','3500 Southwest Blvd',', 8 am to 3:30 pm'], 
    baltimore: ['Baltimore','913 Old Philadelphia Rd',', 8 am to 3 pm'] 
}; 

然後,你可以寫

var currentCity = cities[jobName][0]; 
+0

我正要回答這個問題。 – soktinpk

+0

真棒我覺得我更喜歡這個,我會試試這個謝謝! –

+0

我無法得到這個工作? '$( 「#就業形式」)提交(函數(E){ e.preventDefault(); VAR作業名稱=的document.getElementById( 「工作」)。值; var cities = {'Columbus','3500 Southwest Blvd',',8 am to 3:30 pm'], 巴爾的摩:['巴爾的摩','913老費城路',',上午8點到下午3點'] }; var currentCity = cities [jobName] [0]; var currentAddress = cities [jobName] [1]; var currentTime = cities [jobName] [2]; $('。job')。slideDown(); $('。job .name')。text(currentCity); });' 我的jsfiddle http://jsfiddle.net/chrisburk/r5Q5L/12/ –

2

你似乎想「看看提高「基於密鑰的價值。通常,這是通過所謂的「字典」 - 或者更正式地說,「associate array」(有時也稱爲「hash table」 - 雖然散列表僅僅是一種類型的字典)完成的。

JavaScript有,你可以使用一個叫做對象類似的東西。它們使用花括號{}編寫,並且通過冒號:將鍵與值分開。鍵是字符串,但引號通常是可選的。價值觀可以是任何你想要的。

var cities = { 
    columbus: ['Columbus','3500 Southwest Blvd',', 8 am to 3:30 pm'], 
    baltimore: ['Baltimore','913 Old Philadelphia Rd',', 8 am to 3 pm'] 
}; 

一旦你有你(在你的例子jobName)鍵,你可以簡單地使用cities對象來查找你需要什麼。

var jobInfo = cities[jobName], 
    currentCity = jobInfo[0]; 

console.log(currentCity); 

邊注:JavaScript對象不是真正的不折不扣的字典。在大多數其他語言中,字典實際上可以爲密鑰使用許多不同類型的值(例如整數),但在JavaScript中,密鑰通常只能是字符串。

+0

我真的很感謝你的幫助,我試過這個沒有運氣,我不知道我做錯了什麼?這裏是我的小提琴: http://jsfiddle.net/chrisburk/2dUu2/2/ –

+0

@ChrisBurk:HTML中的選項值以大寫字母開頭,表中名稱以小寫字母開頭。請注意,您在此處發佈的HTML也以小寫字母開頭。 –

+0

謝謝,這是問題! –

相關問題