2012-02-08 47 views
6

如何克隆DIV,在div後面追加它,並給它一個新的標識符?jQuery .clone.insertAfter用新的ID

我有一個類reflection一個DIV,我想這個DIV的每個實例,克隆和原後立即插入,但與類reflected(無類,reflection)我怎樣才能做到這一點使用jQuery?

這是我目前的小提琴,但它不工作的權利... http://jsfiddle.net/yUgn9/

+0

@rusty,你的答案去了哪裏,這是正確的? – henryaaron 2012-02-08 23:01:18

回答

9

將函數傳遞給.after(),並讓它返回更新後的克隆。

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

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


在老版本的jQuery,做到這一點...

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

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

+0

對不起...不適用於1.4.2 – henryaaron 2012-02-08 23:00:41

+0

@ user1090389:那麼你會做同樣的事情,但用'.each()'。我會更新。 – 2012-02-08 23:35:21

+2

上帝我愛StackOverflow!一個搜索,第一個結果!謝謝! – NaturalBornCamper 2013-02-27 08:39:59

2

我相信你將需要。每()的他們單獨處理它們。代碼目前所做的就是抓住所有這些代碼並克隆它們。相反,您希望單獨處理它們中的每一個,並在根據需要更改各個類之後,將該克隆插入原始文件之後。

$(document).ready(function(){ 

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

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

});