`clone`不会添加`after`之后的元素

时间:2015-10-14 16:25:59

标签: javascript jquery

我需要克隆元素并在on ele元素之后添加它。这段代码应该这样做但不能正常工作

$(document).on('click', '.js-add-faq-row', function(){
    var tl = $('.faq-container:last');
    tl.clone().after(tl);
});

fiddle is here

2 个答案:

答案 0 :(得分:5)

您需要使用 insertAfter()

$(document).on('click', '.js-add-faq-row', function(){
    var tl = $('.faq-container:last');
    tl.clone().insertAfter(tl);
});

或者您需要使用 after()

这样做
$(document).on('click', '.js-add-faq-row', function(){
    var tl = $('.faq-container:last');
    t1.after(tl.clone());
});

在你的代码中,你试图在克隆元素之后插入元素,而克隆元素还不是dom的一部分。

使用带回调的 after()

更新或更简单明了的方式

$(document).on('click', '.js-add-faq-row', function(){
    $('.faq-container:last').after(function(){
        return $(this).clone();
    });
});

答案 1 :(得分:0)

问题是您尝试在克隆之后添加tl ,但克隆在任何地方都不存在。你需要反过来做这件事:

var clone = tl.clone();
tl.after(clone);