2014-06-05 54 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

谢谢,这是问题! –

相关问题