Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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中的clone()方法那样用较少的代码创建多个克隆_Javascript_Jquery - Fatal编程技术网

在javascript中,如何像jQuery中的clone()方法那样用较少的代码创建多个克隆

在javascript中,如何像jQuery中的clone()方法那样用较少的代码创建多个克隆,javascript,jquery,Javascript,Jquery,jQuery中的clone()方法: var imgElement = $('<img src="img.png"/>').clone(); $(imgElement).appendTo('#ulSelector1 li'); $(imgElement).appendTo('#ulSelector2 li'); $(imgElement).appendTo('#ulSelector3 li'); 但是cloneNode()方法只创建一个克隆。 因此,

jQuery中的
clone()
方法:

var imgElement = $('<img src="img.png"/>').clone();
        $(imgElement).appendTo('#ulSelector1 li');
    $(imgElement).appendTo('#ulSelector2 li');
    $(imgElement).appendTo('#ulSelector3 li');
但是
cloneNode()
方法只创建一个克隆。
因此,在javascript中,如何使用较少的代码创建多个克隆,或者不添加更多的克隆节点方法,如jQuery中的
clone()
方法。

既然要将3个新元素附加到HTML页面中,您无论如何都需要创建3个新元素或克隆它们。您无需创建元素并克隆它,只需指示jQuery每次生成一个新元素:

var pattern = '<img src="img.png"/>';
$(pattern).appendTo('#ulSelector1 li');
$(pattern).appendTo('#ulSelector2 li');
$(pattern).appendTo('#ulSelector3 li');
var模式=”;
$(模式)。附加到('ulselector 1 li');
$(模式)。附加到('ulselector 2 li');
$(模式)。附加到(“#ulSelector3 li”);
它将创建3个新的DOM元素并将它们附加到相应的元素中。

这一个怎么样

var img = $('<img src="img.png"/>');

$(img.clone()).appendTo('#ulSelector1 li');
$(img.clone()).appendTo('#ulSelector2 li');
$(img.clone()).appendTo('#ulSelector3 li');
var img=$('');
$(img.clone()).appendTo('ulSelector1 li');
$(img.clone()).appendTo('ulselector2li');
$(img.clone()).appendTo('ulSelector3 li');

您可以使用如下循环结构:

 for(var i = 0; i<4;i++){
     var img =  $('<img src="img.png"/>');
     img.appendTo('#ulSelector'+i + ' li');
 }

用于(var i=0;iIt不清楚您想要实现什么。纯客户端javascript代码有什么问题?为什么不将clone语句包装在for循环中?您的第一个代码段还克隆了单个元素,然后在不同的父级下对其进行三次重定位。这两个代码段在技术上是等效的。答案如下:斯特德:你能给他们一些反馈吗?但是,如何在javascript中创建更多的克隆而不添加更多的克隆节点方法?@Mr.PM这是没有意义的。想象一下你想要的非工作代码或伪代码(“我想要这样的东西:”)并编写它。我无法想象在没有克隆节点的情况下使用“更多克隆”“cloneNode”。我的回答中的方法有什么问题吗?3行3项就足够了。
 for(var i = 0; i<4;i++){
     var img =  $('<img src="img.png"/>');
     img.appendTo('#ulSelector'+i + ' li');
 }