Jquery 使用Ajax在div中加载json数据(未捕获类型错误:无法读取未定义的属性';长度')

Jquery 使用Ajax在div中加载json数据(未捕获类型错误:无法读取未定义的属性';长度'),jquery,ajax,Jquery,Ajax,我试图在我的项目中实现无限滚动。我创建了3个页面index.php、ajax.php和script.js。索引运行良好。php从mysql数据库返回json格式的数据 `$.each(data.content, function(key, value ){` script.js出现问题 下面是代码 `$.each(data.content, function(key, value ){` Script.js: $(window).scroll(function() { if($(wind

我试图在我的项目中实现无限滚动。我创建了3个页面index.php、ajax.php和script.js。索引运行良好。php从mysql数据库返回json格式的数据

`$.each(data.content, function(key, value ){` 
script.js出现问题 下面是代码

`$.each(data.content, function(key, value ){` 
Script.js:

$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() == $(document).height()){
        first = $('#first').val();
        limit = $('#limit').val();
        no_data = true;
        if(flag && no_data){
            flag = false;
            $('#loader').show();

            $.ajax({
                url : 'ajax.php',
                dataType: "json",
                type: 'post',
                data: {
                   start : first,
                   limit : limit
                },
                success: function( data ) {
                    flag = true;
                    $('#loader').hide();

                    if(data.count > 0 ){
                        first = parseInt($('#first').val());
                        limit = parseInt($('#limit').val());
                        $('#first').val( first+limit );
                        $( "#jc" ).append( "<p>Test</p>" );
                        //$('#jc').append();
                        $.each(data.content, function(key, value ){
                            alert(value.name);
                            //$( "#jc" ).append( "<p>Test1</p>" );
                            html +=value.name;
                            html += '<span class="month"><i class="fa fa-calendar"></i>'+value.name+'</span><p>&nbsp;</p>';
                            html += '<p><a href="'+value.email+'" target="_blank">Demo </a></p>';
                            html += '<p><a href="'+value.job_description+'" target="_blank">Tutorial </a></p>';


                            html += '<p>'+value.mobile+'</p>';
                            html += '</li>';
                            $('#jc').append( html );


                        });

                    }else{
                        alert('No more data to show');
                        no_data = false;
                    }
                },
                error: function( data ){
                    flag = true;
                    $('#loader').hide();
                    no_data = false;
                    alert('Something went wrong, Please contact admin');
                }
            });
        }


    }
}); 
`$.each(data.content, function(key, value ){` 
这条线有问题,因为在这之后我放了警报标签,但它没有开火

`$.each(data.content, function(key, value ){` 
Json数据

`$.each(data.content, function(key, value ){` 
{"count":2,"0":{"name":" Admin","email":"md1234@gmail.com","description":"We are looking json data. ","mobile":"123456789","newDate":"01-Apr-2016"},"1":{"name":"Raja","email":"fsfsf@sfsfs.ccc","description":"testing testing ","mobile":"43455435422","newDate":"31-Mar-2016"}}

我检查了控制台,发现了这个错误
jquery-2.1.3.min.js:2未捕获类型错误:无法读取未定义的

的属性“length”。首先,在
$中。each()
在发出警报之前,您应该迭代
数据,而不是
数据。内容
。存储在
数据
中的对象没有
内容
属性

`$.each(data.content, function(key, value ){` 
然后,在
数据
对象中,第一个键/值对是
“count”:2
,因此您的警报试图读取
2
名称
属性。只有在其他键/值对中,您的值才是具有
名称
属性的对象

`$.each(data.content, function(key, value ){` 
在尝试调用该值之前,可以尝试检查该值是否具有
名称
属性:

`$.each(data.content, function(key, value ){` 
$.each(data, function(key, value ){
    if (value.name) {
        alert(value.name);
    }

    // etc.

首先,在您的
$.each()
警报前,您应该迭代
数据
,而不是
数据.内容
。存储在
数据
中的对象没有
内容
属性

`$.each(data.content, function(key, value ){` 
然后,在
数据
对象中,第一个键/值对是
“count”:2
,因此您的警报试图读取
2
名称
属性。只有在其他键/值对中,您的值才是具有
名称
属性的对象

`$.each(data.content, function(key, value ){` 
在尝试调用该值之前,可以尝试检查该值是否具有
名称
属性:

`$.each(data.content, function(key, value ){` 
$.each(data, function(key, value ){
    if (value.name) {
        alert(value.name);
    }

    // etc.

谢谢你的回答。我们也可以使用hasOwnProperty,
value.hasOwnProperty('name')
来检查它。它起作用了,但我得到了一个额外的json数据,因为它没有定义。像json一样,从db返回2条记录,但当我将它们打印为html时,我得到了额外的记录(udefined)。您是否将
if
包装在构建html的行中并将其附加到
#jc
中?谢谢您的回答。我们也可以使用hasOwnProperty,
value.hasOwnProperty('name')
来检查它。它起作用了,但我得到了一个额外的json数据,因为它没有定义。像json一样,从db返回2条记录,但当我将它们打印为html时,我得到了额外的记录(udefined)。您是否将
if
包装在构建html的行周围,并将其附加到
#jc