我想做什么:
点击.plus类的任何按钮时, 克隆div #plusclone 删除类.plus的按钮 并将其附加到div #eingabemsearch。
我的代码所做的只是克隆.plus并附加它。所以恰恰相反。
$(".plus").click(function(){
var cloned = $('#plusclone').clone().find('.plus').remove();
$("#eingabemsearch").append(cloned);
});
这可能真的很愚蠢,但我尝试了许多不同的东西,无法让它发挥作用。
答案 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);
});