复制select的选项并插入到另一个select jQuery中

时间:2013-03-20 17:29:44

标签: jquery ajax

大家好,我有一个网站,如果我更改一个选择启动ajax调用,返回一个选择。 想要复制其选项并插入我现有的选择中。 这是我的代码:

$(document).ready(function(){
    $("#nation").change(function() {
        var nation_id = $(this).val();
        change_city_by_nation(nation_id);
    });

    function change_city_by_nation(nation_id){
            var site_url_city ="<?php echo(site_url('/backend/city/get_city_by_nation_id')); ?>";
            $.ajax({   
                url: site_url_city, 
                async: false,
                type: "POST", 
                data: "nation_id="+nation_id, 
                dataType: "html", 

                success: function(data) {
                    $('#city').html(data);
                    $('#city').prepend("<option value='0' selected='selected'>All city</option>");

                }
             });
        }
});

 <select name="nation" id="nation" style="width:180px;" >
     <option value="2">Nation2</option>
     <option value="3">Nation3</option>
</select>
<select name="city" id="city" style="width:180px;" >
     <option value="0">All city</option>
</select>

数据提醒是:

<select name="citylist">
<option value="39">Adelaide</option>
<option value="43">Alice Springs</option>
<option value="44">Brisbane</option>
<option value="45">Cairns</option>
<option value="36">Canberra</option>
<option value="31">Darwin</option>
<option value="37">Gold Coast</option>
<option value="32">Margaret River - Regione dei Vini</option>
<option value="40">Melbourne</option>
<option value="41">Palm Cove</option>
<option value="35">Perth</option>
<option value="42">Port Douglas</option>
<option value="33">Sydney</option>
<option value="34">Tasmania</option>
<option value="38">Townsville</option>
</select>

如何将将数据返回到成功功能的选项复制到选择城市? 因为用我的方式我把一个选择放入另一个选择。 我无法改变ajax的结果

1 个答案:

答案 0 :(得分:2)

我认为您希望过滤数据响应,以便documentation 首先过滤您的数据,然后附加您的选项:

success: function(data) {
                    $('#city').html($(data).filter('option'));
                    $('#city').prepend("<option value='0' selected='selected'>All city</option>");

                }