问题描述:在一个JSP中引入一个JS函数,JS函数里用到了for循环,代码如下:
function callback(result){
//debugger
var jsonObj = JSON.parse(result);
console.log(jsonObj);
var trs="";
for(var i=0,i<jsonObj.length,i++){
trs+="<tr>"+
"<td>"+jsonObj[i].id+"</td>"+
"<td>"+jsonObj[i].name+"</td>"+
"<td>"+jsonObj[i].age+"</td>"+
"<td>"+jsonObj[i].sex+"</td>"+
"</tr>"
}
var tBody=document.getElementById("tBodyId");
tBody.innerHTML=trs;
}
以上为定义Ajax中的回调函数,为实现数据在页面中局部更新异步加载,但运行时浏览器把’<'误认为标签,如图所示:
解决办法:我将JS函数中的for循环遍历改为for in遍历代码如下:
function callback(result){
//debugger
var jsonObj = JSON.parse(result);
console.log(jsonObj);
var trs="";
for(let i in jsonObj){
trs+="<tr>"+
"<td>"+jsonObj[i].id+"</td>"+
"<td>"+jsonObj[i].name+"</td>"+
"<td>"+jsonObj[i].age+"</td>"+
"<td>"+jsonObj[i].sex+"</td>"+
"</tr>"
}
var tBody=document.getElementById("tBodyId");
tBody.innerHTML=trs;
}
运行后页面异步加载了数据,如图所示: