Ajax调用不会更新我发回的值

时间:2014-01-01 21:34:42

标签: javascript php jquery html ajax

真的不确定这个。

我有一个加载更多数据的ajax调用。这工作正常,但我正在创建一个功能,一旦没有更多的数据删除按钮。

所以,在加载的php页面上......以及拥有数据我还有一个包含查询行数的div。

所以在loadmorebuilds.php我有:

// a query that just returns a set of results from the DB. These are just echo'd into divs.

<div id='countvar'><?php echo $isMore ?></div>

这是在php loadmore页面。

然后整个ajax调用就是这样:

$(document).ready(function(){
    var pageIndex = 1;
    $('#loadmorebuilds-div').click(function() {
        $('#buildcontainer').imagesLoaded( function(){
        $.ajax({
           url: 'includes/loadmorebuilds.php?type=trending&pageIndex=' + pageIndex,
           success: function(html) {
              var el = jQuery(html);
              var rowCount = $("#countvar").html();

              jQuery("#buildcontainer").append(el).masonry( 'reload' );
              $("#loadmorebuilds-div").stop().fadeOut();
              pageIndex++;
              $("#buildcontainer").masonry();

              alert(rowCount); 

           }

        });

    });

});
});

问题是,我认为

var rowCount = $("#countvar").html();

只是检查当前文档中有一个名为'countvar'的div。所以即使有这个id的新div被发送回来,它只取第一个,所以如果该div的内容为'8'我将永远显示出来。

我的问题是......

如何检查名为'countvar'的div的返回数据?

1 个答案:

答案 0 :(得分:0)

就像您观察到的那样,您正在选择页面上的元素。您需要在返回的html中找到该元素,但要创建一个对象,请创建一个包含它的对象。

 success: function(html) {
    var el = $('<div>').html(html);
    var rowCount = el.find("#countvar").html();

http://jsfiddle.net/Um8pR/2/