Javascript 如何在数组末尾添加对象的副本?

Javascript 如何在数组末尾添加对象的副本?,javascript,Javascript,我怎么能在数组的末尾添加第一个标记的副本,因为我知道push()不能在这种情况下使用 <p>A</p> <p>B</p> <p>C</p> <script> var pArray=document.getElementsByTagName("p"); //now I would like to add pArray[0] </script> A B C var pArray=document.ge

我怎么能在数组的末尾添加第一个标记的副本,因为我知道push()不能在这种情况下使用

<p>A</p>
<p>B</p>
<p>C</p>

<script>
var pArray=document.getElementsByTagName("p");
//now I would like to add pArray[0]
</script>
A

B

C

var pArray=document.getElementsByTagName(“p”); //现在我想添加pArray[0]
pArray
实际上不是数组。这是一个
节点列表
。要将其转换为数组,只需调用
array.prototype.slice

var pArray = Array.prototype.slice.call(document.getElementsByTagName("p"));

Push不可用,因为pArray实际上是节点列表。但是,通过简单地分配给最后一个索引,您可以在不使用数组方法push的情况下添加到它。cloneNode将为您复制第一个元素

pArray[pArray.length] = pArray[0].cloneNode();

如果要将第一个
标记的副本实际添加到DOM(而不仅仅是修改数组),则需要克隆节点并将其插入到最后一个节点之后:

var els = document.getElementsByTagName('p');
var copy = els[0].cloneNode(true);
var last = els[els.length - 1];

last.parentNode.insertBefore(copy, last.nextSibling);
你会发现这很有帮助