ajax请求仅显示循环中的最后一条记录,以下代码:
$.ajax({
method: "POST",
url: "{{asset('/num')}}",
dataType: "json",
success: function (data) {
var inf;
var json_x = data;
json_x.forEach(function(item){
inf = '<p>'+ item['id'] +"</p>";
});
insTabl = document.getElementById('table');
insTabl.innerHTML = inf;
}
});
发送div
id='table'
答案 0 :(得分:0)
此行
inf = '<p>'+ item['id'] +"</p>";
每次循环,都会覆盖inf
的值。结果,当循环结束时,inf
仅保留上一次迭代中的相应值。
要解决此问题,请将inf
初始化为空字符串,在循环之前 :
var inf = "";
,然后用 附加到字符串的这一行替换循环内的上一行:
inf += '<p>'+ item['id'] +"</p>";
这样,您每次在循环中都使HTML字符串更长,最后得到我认为您想要的一系列段落。
答案 1 :(得分:0)
您的循环每次都会覆盖inf
变量。而是尝试在每次通过时添加到您的字符串中:
var inf = '';
var json_x = data;
json_x.forEach(function(item){
inf += '<p>'+ item['id'] +"</p>";
});
答案 2 :(得分:0)
我猜你的问题是这一行:
inf = '<p>'+ item['id'] +"</p>";
您将覆盖旧值,而不仅仅是添加新值(我想您正在尝试的是什么)。因此,您可以这样尝试:
let inf = ""; // you could/should use "let" instead of "var"
//codeline in the callback:
inf += "<p>"+ item['id'] +"</p>";