2012-02-08 7 views
6

DIVをクローンし、divの直後に追加して新しい識別子を付けるにはどうすればよいですか?jQuery .clone .insertAfter新しいIDを使用

私はクラスreflectionとDIVを持って、私はjQueryを使ってこれを実現するにはどうすればよいクローン化され、このDIVの各インスタンスをしたい、と右のオリジナルの後に、しかし(クラスなし、reflection)クラスreflectedを挿入?それらを個別に処理するためにそれらを)私はあなたが(.eachする必要があります信じてここ

は私の現在のバイオリンだが、それは正しく動作しません... http://jsfiddle.net/yUgn9/

+0

@ trustyあなたの答えはどこに行きましたか、それは正しいですか? – henryaaron

答えて

9

.after()に関数を渡すと、それが更新さをクローンを返しています。

$('div.reflection').after(function() { 
    return $(this).clone().toggleClass('reflection reflected'); 
}); 

DEMO:jQueryの古いバージョンではhttp://jsfiddle.net/PFBVX/


、これを行う...

$('div.reflection').each(function() { 
    $(this).after($(this).clone().toggleClass('reflection reflected')); 
}); 

DEMO:http://jsfiddle.net/PFBVX/1/

+0

申し訳ありませんが1.4.2で動作しません – henryaaron

+0

@ user1090389:それでは、同じことをやるが、 '.each()'を使ってやる。私は更新します。 –

+2

私はStackOverflowが大好きです! 1つの検索、最初の結果!ありがとう! – NaturalBornCamper

2

。コードが現在行っていることは、それらのすべてをつかんで、それらのすべてを後にクローンすることです。その代わりに、それぞれのクラスを個別に処理し、必要に応じてクラスを変更した後に元のクラスの後にクローンを挿入したいとします。

$(document).ready(function(){ 

    $('div.reflection').each(function() { 
     var org = $(this), 
      clone = org.clone(); 

     clone.removeClass('reflection').addClass('reflected') 
      .insertAfter(org); 
    }); 

}); 
関連する問題