繁体   English   中英

未被捕获的TypeError:通过Json Object访问arraylist时无法读取未定义的属性'length'

[英]Uncaught TypeError: Cannot read property 'length' of undefined while accessing arraylist through Json Object

我从我的struts2动作类返回一个数组列表。 当我尝试通过JSON访问JavaScript文件中的Array列表时,

我正进入(状态

“未捕获的TypeError:无法读取未定义的属性'length'”。

在下面的行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++;
            }
        });
    }
}) 

我想你没有在ajax中提到dataType ...

 $.ajax({
          url:"",
          type:"post",
          dataType:"json",
           success:function(outputdata){ //do somethins
               console.log(outputdata);   
        }
});

您可以检查选择器是否正常工作? 我怀疑这行不会返回有效的对象:

var table = document.getElementById("tablereload");

尝试这个? 您需要确保在表中使用tbody标签。

var rowCount = document.getElementById('tablereload').getElementsByTagName('tbody')[0].getElementsByTagName('tr').length;

在这里找到: 不使用jquery计算表中的行数

谢谢你的帮助。

问题已解决。 我实际上,我在Java中的arraylist是EmpListByOffsetAndLength,但是在控制台中,它作为带有e mpListByOffsetAndLength的json对象出现,即带有小的'e'。 这就是为什么当我们在其上运行长度函数时,它对未定义的对象显示cnnot读取长度函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM