使用 ajax 和 json 填充 select 有时会失败
Populate a select using ajax and json sometimes fail
我正在尝试使用 ajax 调用来填充 Select,该调用用内容检索 json。据我所知,连接正常(使用 Chrome 网络选项我看到 ajax 响应始终包含数据,这是 select 什么都不显示时的响应示例:[ {"id":"4","value":"VALOR 4"},{"id":"5","value":"VALOR 5"},{"id":"6","value":"VALOR 6"}]).
我正在使用这段 jquery 来加载 select(从 $.ready() 调用函数):
function(options) {
$.each(options, function(key, option){
select.append($('<option></option>').val(option['id']).text(option['value']) );
})};
问题是有时 select 被填充,有时却没有,浏览器控制台上没有显示任何错误。事实上,我复制了相同的 SELECT,但它们都出现了问题,但不是同时发生:有时两者都被填充,有时只有一个,有时两者都是空的......
我应该如何 fix/rewrite 我的代码才能使其始终如一地工作?
你的逻辑似乎是正确的,所以如果有问题,可能是你从服务器收到的响应
let options = [{"id":"4","value":"VALOR 4"},{"id":"5","value":"VALOR 5"},{"id":"6","value":"VALOR 6"}];
let select = $('select')
$.each(options, function(key, option){
select.append($('<option></option>').val(option['id']).text(option['value']) );
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select></select>
我正在尝试使用 ajax 调用来填充 Select,该调用用内容检索 json。据我所知,连接正常(使用 Chrome 网络选项我看到 ajax 响应始终包含数据,这是 select 什么都不显示时的响应示例:[ {"id":"4","value":"VALOR 4"},{"id":"5","value":"VALOR 5"},{"id":"6","value":"VALOR 6"}]).
我正在使用这段 jquery 来加载 select(从 $.ready() 调用函数):
function(options) {
$.each(options, function(key, option){
select.append($('<option></option>').val(option['id']).text(option['value']) );
})};
问题是有时 select 被填充,有时却没有,浏览器控制台上没有显示任何错误。事实上,我复制了相同的 SELECT,但它们都出现了问题,但不是同时发生:有时两者都被填充,有时只有一个,有时两者都是空的......
我应该如何 fix/rewrite 我的代码才能使其始终如一地工作?
你的逻辑似乎是正确的,所以如果有问题,可能是你从服务器收到的响应
let options = [{"id":"4","value":"VALOR 4"},{"id":"5","value":"VALOR 5"},{"id":"6","value":"VALOR 6"}];
let select = $('select')
$.each(options, function(key, option){
select.append($('<option></option>').val(option['id']).text(option['value']) );
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select></select>