根据选择的选项选择阵列



我有一组数组,每个数组里面都有一系列对象。我想根据选择的选项来选择数组。

<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"}
];
     }
    });

如果我理解正确您的问题,这应该有效!!

最新更新