jquery用值关联数组替换选择选项

时间:2017-10-13 09:11:34

标签: javascript jquery

我想根据select1中的选项更改select2的选项。因此我创建了一个像这样的关联数组:

var rubrieken = {'1': '<option value="10">Rubriek 10</option><option value="20">Rubriek 20</option>','2': '<option value="30">Rubriek 30</option><option value="40">Rubriek 40</option>'};

因此,如果选择了select1选项2,则select2的当前值必须替换为带有键2的选项。我在下面创建了Jquery,但是如何从数组中提取选项并将它们放入select中?

var rubrieken = {'1': '<option value="10">Rubriek 10</option><option value="20">Rubriek 20</option>','2': '<option value="30">Rubriek 30</option><option value="40">Rubriek 40</option>'};
$( document ).ready(function() {
    //Bij keuze categorie de rubrieken vullen 
    $("#select1").change(function(){
        //maak de huidige select leeg
        $('#select2').empty();
        //selectie uit array van juiste waarden
        $newoptions = "<option>NewO1</option><option>NewO1</option>";
        //vul de select rubriek op basis van categorie keuze    
        $('select#select2').html($newoptions);
    }); 
});

2 个答案:

答案 0 :(得分:2)

请试试这个!

var rubrieken = {
    '1': '<option value="10">Rubriek 10</option><option value="20">Rubriek 20</option>',
    '2': '<option value="30">Rubriek 30</option><option value="40">Rubriek 40</option>'
};

$(function() {
    $("#select1").change(function() {
        var key = $(this).val();
        var newoptions = rubrieken[key];
        $('#select2').html(newoptions);
    }); 
});
  

注意:

     

您不需要$('#select2').empty();,因为.html()会替换内容。

祝你好运!

答案 1 :(得分:1)

您可以将key-value对作为相应的选项进行访问。就像选择了1选项一样,您可以像rubrieken["1"]

那样访问它

Way to access object property.

var rubrieken = {'1': '<option value="10">Rubriek 10</option><option value="20">Rubriek 20</option>','2': '<option value="30">Rubriek 30</option><option value="40">Rubriek 40</option>'};
    $( document ).ready(function() {
        //Bij keuze categorie de rubrieken vullen 
        $("#select1").change(function(){
            //maak de huidige select leeg
            $('#select2').empty();
            var selectedValue = $(this).val();
            if(selectedValue){
                var getOptions = rubrieken[selectedValue];
                $('select#select2').html(getOptions);
            }
        }); 
    });