我有一组数组,每个数组里面都有一系列对象。我想根据选择的选项来选择数组。
<select id="job" name="job">
<option value="job_1">job_1</option>
<option value="job_2">job_2</option>
<option value="job_3">job_3</option>
</select>
我有一个选择更改选项的功能。我尝试使用 if 语句来选择与选项 select 匹配的选项,但它只返回第一个数组。
var selectedValue;
$("#job").change(function() {
selectedValue = $("#job option:selected").val();
return selectedValue;
}).change();
if(selectedValue == "job_1"){
var country_data = [
{"country_id":1,"country":"Luxembourg","local_wage":"407","wage":"489","exchange":"0.98"},
{"country_id":2,"country":"Norway","local_wage":"3200","wage":"378","exchange":"9.57"},
{"country_id":3,"country":"Austria","local_wage":"290","wage":"337","exchange":"0.87"}
];
}
else if(selectedValue == "job_2"){
var country_data = [
{"country_id":1,"country":"Luxembourg","local_wage":"874","wage":"654","exchange":"0.24"},
{"country_id":2,"country":"Norway","local_wage":"741","wage":"365","exchange":"4.77"},
{"country_id":3,"country":"Austria","local_wage":"854","wage":"634","exchange":"0.43"}
];
}
else if(selectedValue == "job_3") {
var country_data = [
{"country_id":1,"country":"Luxembourg","local_wage":"854","wage":"985","exchange":"0.25"},
{"country_id":2,"country":"Norway","local_wage":"645","wage":"874","exchange":"5.55"},
{"country_id":3,"country":"Austria","local_wage":"201","wage":"256","exchange":"0.78"}
];
}
任何建议都会很棒。
目前,if 语句在页面加载时只运行一次,当时唯一选定的项目是job_1。
if 语句需要在选择框更改事件运行时运行。
我根据您的代码创建了一个带有简短示例的小提琴,其中还包括打印当前对象以显示所选数据:http://jsfiddle.net/6a1ux1ot/6/
简短预览:
$("#job").change(function () {
selectedValue = $("#job option:selected").val();
if (selectedValue == "job_1") {
...
}
}).change();
这是一个更新的小提琴 http://jsfiddle.net/u1z7c696/1/,可以像您想要的那样工作。问题是您的小提琴不包括我对第一个问题的修复。您从未在更改事件处理程序中运行过 if 语句,因此country_data变量从未更新过。在变量声明方面,我还修复了一些其他的js错误。
$("#job").change(function() {
if('#job').val()=='job_1'){
var country_data = [ {"country_id":1,"country":"Luxembourg","local_wage":"407","wage":"489","exchange":"0.98"},
{"country_id":2,"country":"Norway","local_wage":"3200","wage":"378","exchange":"9.57"},
{"country_id":3,"country":"Austria","local_wage":"290","wage":"337","exchange":"0.87"}
];
}
});
如果我理解正确您的问题,这应该有效!!