jQuery和AJAX加载html,在其中选择元素,并附加到当前DOM

时间:2013-02-01 00:19:13

标签: jquery ajax

我正在开发一个jQuery脚本,它从下一页加载html并将其附加到当前容器。基本上是一个永无止境的页面。但是,函数返回时出现错误,但errorThrown为空。这是通过ajax获取html并将其附加到当前DOM的正确方法吗?

$.ajax({type : "GET",
        url : currentUrl + "/page/" + nextPageNumber,
        dataType : "html",
        error : function(jqXHR, textStatus, errorThrown) { alert(textStatus); alert(errorThrown); },
        success : function(data) {
            var frag = document.createDocumentFragment();
            frag.appencChild($(data)[0]);
            var $page = $(frag); 
            $("div.blueline-page-container").append($page.find('div.blueline-page-container').html());
            nextPageNumber++;
        }
});

3 个答案:

答案 0 :(得分:3)

你为什么不用:

$("selector").load(htmlhere);

适用于html。

答案 1 :(得分:1)

对于初学者来说,没有“appencChild”这样的东西。如果您正在尝试加载ID,则可以使用$ .load()的URL字符串中的whatever.html#yourId指定片段。如果您有更多特定需求,只需将响应HTML传递给jQuery并将其作为普通的jQuery对象进行操作:

...
success : function(data) {
    var $page = $(data);
    $("div.blueline-page-container").append($page.find('div.blueline-page-container').html());
}
...

答案 2 :(得分:0)

感谢所有回答的人,这确实帮助我指明了正确的方向。对于那些从搜索中偶然发现这一点的人来说,这就是我最终做到的方式:

$("div.blueline-page-container").append("<div id='blueline-page-" + nextPageNumber + "'><div>");
$("#blueline-page-" + nextPageNumber).load("/page/" + nextPageNumber + " div.blueline-page-container");

我向具有唯一ID的页面添加<div>,然后将ajax结果加载到创建的<div>

最后简单......