jQuery .clone .insertAfter带有新ID

时间:2012-02-08 22:42:14

标签: javascript jquery clone addclass insertafter

如何克隆DIV,在div之后追加它并给它一个新的标识符?

我有一个类reflection的DIV,我想要这个DIV的每个实例,克隆并插入原始版本之后,但是使用类reflected(没有类{{1}我怎样才能用jQuery实现这个目标?

这是我当前的小提琴,但它不能正常工作...... http://jsfiddle.net/yUgn9/

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分:2)

我相信你需要.each()来单独处理它们。代码目前正在做的是抓住所有这些代码并在所有代码之后克隆它们。相反,您希望单独处理它们,并在根据需要更改类之后将克隆插入原始文件之后。

$(document).ready(function(){

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

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

});