0

我需要将网页的内容加载到我现有的页面中,特别是在现有内容之后,而不是太替换它。我需要在我希望将内容拉入的 div 中的最后一个 HR 标记之后执行此操作。

所以,我拥有的html是:

<article>
<p>My content</p>
</article>
<hr>

<hr>所以我希望我的内容在该标签之后直接加载。但我试图在之后使用,它对<hr>标签做了一些奇怪的事情,试图让它成为<hr>我的 ajax 内容</hr>

$(document).ready(function(){
  $('.news-ajax-link').click(function(){
    $("article hr").after().load('/news/ajax_news/?offset=2');
    event.preventDefault();
  });
});
</script>

任何帮助都会很棒!谢谢!

4

3 回答 3

1

jQuery.load()函数专门设计用于将内容加载到容器元素中,因此它试图做的正是您告诉它的:在您的<hr>元素中加载该 URL 的内容。

如果您想在之后附加内容,<hr>您需要使用 jQuery 提供的其他 AJAX 函数之一 - 我建议使用jQuery.ajax()- 并在回调函数中自己进行附加:

$(document).ready(function(){
    $('.news-ajax-link').click(function(event){ // note the event parameter added here
        $.ajax({
            url: '/news/ajax_news/?offset=2',
            type: 'post',
            success: function(content) {
                $("article hr").after(content);
            });
        });
        event.preventDefault();
    });
});
于 2012-11-16T16:14:17.787 回答
0

我想你可能需要关闭小时,所以使用这个

<hr />

否则 jQuery(或者可能是浏览器)认为它是一个未封闭的标签

编辑:实际上我认为问题出在 after()

after() 意味着有一个论点,所以试试这个:

.after(/*AJAXED content here*/);
于 2012-11-16T16:14:15.243 回答
0

您可以尝试使用.append()而不是.after().

或者也许添加一个html标签并load()进入它。

<article>
<p>My content</p>
</article>
<hr>
<span id="loadedContent"></span>


$(document).ready(function(){
   $('.news-ajax-link').click(function(){
     $("#loadedContent").load('/news/ajax_news/?offset=2');
    event.preventDefault();
   });
 });
于 2012-11-16T16:14:48.017 回答