我想做什么:
当单击类 .plus 的任何按钮时,克隆div #plusclone删除带有 .plus 类的按钮并将其附加到div #eingabemsearch。
我的代码所做的是只克隆 .plus 并附加它。所以几乎相反。
$(".plus").click(function(){
var cloned = $('#plusclone').clone().find('.plus').remove();
$("#eingabemsearch").append(cloned);
});
这可能真的很愚蠢,但我尝试了很多不同的东西,但无法让它工作。
您的问题是由于返回.plus
元素而不是您克隆的父元素find()
造成的。要解决此问题,您只需稍微重新排列逻辑以保留对原始克隆的引用。另请注意,您需要从克隆中删除id
以避免重复。试试这个:
$(".plus").click(function(){
var $clone = $('#plusclone').clone().removeAttr('id');
$clone.find('.plus').remove();
$clone.appendTo("#eingabemsearch");
});
您正在使用 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);
});