如何动态更改第二个选择afert更改第一个

时间:2016-01-03 12:29:45

标签: jquery select dynamic

我想创建动态汽车自动搜索,并更改第二个选择" id = themodel"在改变第一个" id = thecar"之后。变量m1,m2,m3由php动态创建。

问题出在这一行" $('#themodel')。html(themodelID);",我不知道如何解决它,因为警报返回正确值,如果我替换" themodelID" (例如)" m1" - 它有效......

像这样的结构

 <div class="styled-select">    
                <select id="thecar">
                    <option class="first">- Marka -</option>
                    <option value="1">Audi</option>
                    <option value="2">BMW</option>
                    <option value="3">Fiat</option>
                    <option value="4">Ford</option>
                    <option value="5">Honda</option>
                    <option value="6">Kia</option>
                    <option value="7">Mercedes-Benz</option>
                    <option value="8">Mazda</option>
                    <option value="9">Opel</option>
                    <option value="10">Volkswagen</option>                       
                </select>
            </div>

            <div class="styled-select">     
                <select id="themodel">
                    <option class="first">- Model -</option>                     
                </select>
            </div>

,这是jQuery代码:

$(document).ready(function() {

        var m1 = '<option value="11">A1</option><option value="12">A2</option><option value="13">A3</option><option value="14">A4</option>';
        var m2 = '<option value="21">318</option><option value="22">320</option><option value="23">525</option><option value="24">530</option>';
        var m3 = '<option value="31">Bravo</option><option value="32">Brava</option><option value="33">Siena</option><option value="34">Ducato</option>';

        $('#thecar').change(function(){     
            var thecarID = $('#thecar').val();              
            var themodelID =  ('m' + thecarID);
            $('#themodel').html(themodelID);
        });

    });

1 个答案:

答案 0 :(得分:0)

无法动态创建变量名称。最简单的方法是使用一个对象来存储所有选项并使用[]表示法来访问它们

 var options = {
     m1: '<option value="11">....',
     m2: '<option value="21">...',
     m3: '<option value="31">...'    
 };

 $('#thecar').change(function(){     
        var thecarID = $('#thecar').val();              
        var themodelID =  ('m' + thecarID);
        $('#themodel').html(options[themodelID]);
    });