Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery克隆第一次工作,但不能在以后工作_Javascript_Jquery - Fatal编程技术网

Javascript jquery克隆第一次工作,但不能在以后工作

Javascript jquery克隆第一次工作,但不能在以后工作,javascript,jquery,Javascript,Jquery,addrow将克隆div,但当我继续单击它时,它不会克隆单个元素,而是克隆多个元素,这里的逻辑有什么缺陷 $('#addRow')。单击(函数(){ $(this.sides('.elem').clone().appendTo($(this.sides('.elem')); }); 元素 +您只想选择一个元素,而同级('.elem')调用正在选择所有元素(当前元素除外),包括克隆的元素 在调用兄弟姐妹()后,可以调用first(),只选择一个 您可能还希望将它们附加到父级,而不是所有同级的相

addrow将克隆div,但当我继续单击它时,它不会克隆单个元素,而是克隆多个元素,这里的逻辑有什么缺陷

$('#addRow')。单击(函数(){
$(this.sides('.elem').clone().appendTo($(this.sides('.elem'));
});

元素
+
您只想选择一个元素,而
同级('.elem')
调用正在选择所有元素(当前元素除外),包括克隆的元素

在调用
兄弟姐妹()
后,可以调用
first()
,只选择一个

您可能还希望将它们附加到父级,而不是所有同级的相同集合

var $clone = $(this).siblings('.elem').first().clone();

$clone.appendTo($(this).parent());

或者,您可以
insertAfter()
最后一个元素(
$(this).同胞('.elem').last()
)。

仅克隆第一个元素,并在最后一个实例之后插入一次

$('#addRow')。单击(函数(){
$(this.sides('.elem:first').clone().insertAfter($(this.sides('.elem:last'));
});

元素

+
您正在进行多次克隆,因为每次克隆元素时都会生成一个带有
class=“elem”
的新元素,因此每次单击都会克隆带有
class=“elem”
的所有元素

要解决此问题,请使用
first()
,它仅使用
class=“elem”
选择第一个元素,因此每次单击仅克隆一个元素

下面是代码的简化版本

$("#addRow").click(function(){
    $(".elem").first().clone().appendTo("body");
});


使用要将克隆元素附加到的元素的id,而不是将其附加到“body”中。希望这能有所帮助。

问题在于每次单击按钮时,
.elem
选择器匹配的元素越来越多

解决这个问题的一种方法是保留对一个元素的引用,并使用它来克隆然后追加;此外,将这些元素分组到另一个
中以便于参考是有意义的

jQuery(函数(){
var$elem=$('#rows.elem');//保留为引用
$('#addRow')。单击(函数(){
$('#行').append($elem.clone());
});
});

元素
+
克隆
#addRow
时,选择器将选择所有存在的对象,包括刚刚克隆的对象。所以它会加倍你所拥有的一切。@Patosai因为silbings()对吗?是否存在只选择一个兄弟姐妹的兄弟姐妹()