如何在更改时从下拉列表中打印第一个元素?

uzh*_*has 5 javascript jquery

我有这个功能:

function LoadRegions() {
    var region = $('#RegionID');


    var url = "/Account/GetRegions";
    $.getJSON(url, { countryId: $('#CountryID').val() }, function (response) {
        // clear and add default (null) option 

        //region.empty().append($('<option></option>').val('').text('Please select'));



        for (var i = 0; i < response.length; i++) {
            region.append($('<option></option>').val(response[i].Id).text(response[i].Name));
        }

    });
}
Run Code Online (Sandbox Code Playgroud)

当用户选择countrie我调用这个函数,但我想显示在该列表的开始第一个元素...用这行我得到"请选择"但我想从列表中的第一个元素:

  region.empty().append($('<option></option>').val('').text('Please select'));
Run Code Online (Sandbox Code Playgroud)

如果我评论这一行,我会变得空白......任何帮助?

RRK*_*RRK 2

我相信问题可能是链接问题。请参阅end()的文档。

和是在同一条链上完成的empty()append()由于链接算法,这有时会导致问题。该文档对问题有很好的描述。

这可以解决您的问题。

$.getJSON(url, {
    countryId: $('#CountryID').val()
}, function(response) {
    // clear and add default (null) option 
    region
        .empty()
        .end()
        .append($('<option>', {
            value: '',
            text: 'Please select'
        }));
    $.each(response, function(key, tocken) {
        region.append($('<option>', {
            value: tocken["Id"],
            text: tocken["Name"]
        }));
    });
});
Run Code Online (Sandbox Code Playgroud)