0

Web ページのコンテンツを既存のページにロードする必要があります。具体的には、既存のコンテンツを置き換えすぎないようにする必要があります。コンテンツを取り込みたい div の最後の HR タグの後にそれを行う必要があります。

だから、私が持っているhtmlは次のとおりです。

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

<hr>そのため、そのタグの直後にコンテンツをロードしたいと考えています。しかし、私は after を使用しようとしていますが、タグで奇妙なことをしており、それを私の ajax コンテンツ<hr>にしようとしています<hr></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()ように特別に設計されているため、実行しようとしているのは、まさにあなたが指示したとおりです: その URL のコンテンツを要素内にロードします。<hr>

の後にコンテンツを追加する場合<hr>は、jQuery が提供する他の A​​JAX 関数のいずれかを使用する必要があります-使用することをお勧めします-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

.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 に答える
0

おそらくhrを閉じる必要があると思うので、これを使用してください

<hr />

それ以外の場合、jQuery (またはおそらくブラウザー) は、閉じられていないタグと見なします

編集:実際、問題は after() にあると思います

after() は引数を持つことを意味するので、これを試してください:

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