我从struts2动作类返回一个数组列表。 当我试图通过JSON访问我的JavaScript文件中的数组列表时,
我正在
“未捕获的TypeError:无法读取未定义的属性'长度'”。
位于以下行json.EmpListByOffsetAndLength
请参阅下面的代码。我想将arraylist
中的数据显示在我的jsp页面的表格中。
alert(url);
$.ajax({
type : "POST",
cache : false,
url : url,
success : function(json) {
var table = document.getElementById("tablereload");
var rowCount = document.getElementById("tablereload").rows.length;
alert("this is row count" +rowCount);
$("#test").html('');
$.each(json.EmpListByOffsetAndLength, function(index, value) {
var row = table.insertRow(rowCount);
var i = 0;
for ( var key in value) {
var val = value[key];
alert(val);
var cell = row.insertCell(i);
var div = document.createElement('div'), // create
// DIV
// element
txt = document.createTextNode(val); // create
// text
// node
div.appendChild(txt);
cell.appendChild(div);
i++;
}
});
}
})
答案 0 :(得分:4)
我认为你没有在ajax中提到dataType ......
$.ajax({
url:"",
type:"post",
dataType:"json",
success:function(outputdata){ //do somethins
console.log(outputdata);
}
});
答案 1 :(得分:0)
您可以检查选择器是否正常工作吗?我怀疑这一行没有返回有效的对象:
var table = document.getElementById("tablereload");
答案 2 :(得分:0)
试试这个?您需要确保在表格中使用tbody标记。
var rowCount = document.getElementById('tablereload').getElementsByTagName('tbody')[0].getElementsByTagName('tr').length;
在此处找到:Counting the number of rows in a table NOT using jquery
答案 3 :(得分:0)
感谢您的帮助。
问题已解决。实际上,我在Java中的arraylist是EmpListByOffsetAndLength,但是在控制台中,它以e mpListByOffsetAndLength作为json对象出现,即小'e'。这就是为什么当我们在它上面运行长度函数时,它为底层对象显示了cnnot read length函数。