我有这个功能:
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)
如果我评论这一行,我会变得空白......任何帮助?
我相信问题可能是链接问题。请参阅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)