3

私は何百もの

<div class="post">

隣同士。

新しい要素は AJAX を介して更新され、既存の要素の上に配置されます。

今ならスペシャルがあります

<div id="ad1">

常にn位をキープしたい。

だから私はその機能を作りました:

$(".post").each(function() {
    if(cnt>2){
        $('#ad1').after(this);
    }
    cnt++;
});

ループは 1 から n に進みますが、要素は常に #ad1 の直後に追加されるため、#ad1 の後に移動される要素は逆順になります。

どんな入力でも大歓迎です。

ありがとうラファエル

4

2 に答える 2

4

ループをスキップします。たった1行のコードでそれを行う必要があります(新しい要素を一番上に追加した後に実行してください):

$('.post').eq(n).before($('#ad1')); // don't forget .eq is zero-based

http://jsfiddle.net/mblase75/MD4b2/2/

または、残りを広告の下に移動するには:

$('.post').eq(n-1).nextUntil('#ad1').insertAfter($('#ad1'));

http://jsfiddle.net/mblase75/MD4b2/

于 2013-01-17T22:58:01.810 に答える
0

ここで nth-child を使用することもできます。

$("div.post:nth-child("+n+")").before($('#ad1'));
于 2013-01-17T23:03:24.803 に答える