我正在尝试使用以下代码使用list
和list2
数据填充组合框:
$("#collectionPeriod").change(
function(){
alert('collectionPeriodIndex === ' + $(this).find('option:selected').index());
$.ajax({
type: "GET",
url: "${pageContext.request.contextPath}/collectionMonitorCampus.htm",
data: {collectionPeriodIndex: $(this).find('option:selected').index(), sYearIndexNext: $('#sYear').find('option:selected').index(), sYearVal: $('#sYear').find('option:selected').val()},
success: function(data) {
$("#submission").prop("disabled", false);
$("#submission").empty();
$("#category").empty();
$.each($.map(data.list, function(val) {
$('#category').append(new Option(val,val));
console.log("val1 " + val);
}));
$.each($.map(data.list2, function(val) {
$('#submission').append(new Option(val,val));
console.log("val2 " + val);
}));
}
});
});
我遇到的问题是控制台只打印val2
个值,val
完全被忽略。我如何访问这些数据是否有错误?
我的控制器list
和list2
定义为List<String> returnList = new ArrayList<String>();
我放的模型list
和list1 in is
地图模型=新的HashMap();`
我将ModelAndView返回为:
return new ModelAndView("jsonView", model);
任何帮助将不胜感激!感谢。
答案 0 :(得分:0)
.each()
和.map()
都是能够访问data.list
中元素的函数。
详细了解 .each() 和 .map()
你可以使用其中一种,你不需要两者:
$.map(data.list, function(val, i) {
$('#category').append(new Option(val,val));
console.log("val1 " + val);
});
或者
$(data.list).each(function(i, val) {
$('#category').append(new Option(val,val));
console.log("val1 " + val);
});
注意参数顺序,.each()
与.map()
的顺序不同。