追加克隆的div,删除一类div

时间:2017-06-22 16:14:37

标签: jquery html css

我想做什么:

点击.plus类的任何按钮时, 克隆div #plusclone 删除类.plus的按钮 并将其附加到div #eingabemsearch。

我的代码所做的只是克隆.plus并附加它。所以恰恰相反。

 $(".plus").click(function(){
    var cloned = $('#plusclone').clone().find('.plus').remove();
    $("#eingabemsearch").append(cloned);
 });

这可能真的很愚蠢,但我尝试了许多不同的东西,无法让它发挥作用。

2 个答案:

答案 0 :(得分:4)

您的问题归因于find(),因为它返回.plus元素,而不是您克隆的父元素。要解决此问题,您只需稍微重新排列逻辑以保留对原始克隆的引用。另请注意,您需要从克隆中删除id以避免重复。试试这个:

$(".plus").click(function(){
  var $clone = $('#plusclone').clone().removeAttr('id');
  $clone.find('.plus').remove();
  $clone.appendTo("#eingabemsearch");
});

答案 1 :(得分:2)

您正在使用find()方法,因此该引用适用于该元素(已移除的.plus元素),以回到之前的参考用途end()方法。 id属性应该是唯一的,因此请使用removeAttr()方法将其删除,或使用attr()方法使用唯一ID进行更新。

 $(".plus").click(function(){
    var cloned = $('#plusclone').clone().removeAttr('id').find('.plus').remove().end();
    $("#eingabemsearch").append(cloned);
 });

或将克隆元素的引用存储在变量中,并在缓存的对象上执行其余操作。

 $(".plus").click(function(){
    var cloned = $('#plusclone').clone().removeAttr('id');
    cloned.find('.plus').remove();
    $("#eingabemsearch").append(cloned);
 });