将元素nodechilds保存为与javascript中的元素相同的类型

时间:2016-01-13 13:12:47

标签: javascript dom clone nodes

 var old_element=document.getElementById('dhtml_menu-1895');    
 var old_element_child=old_element.children;    
  console.log(old_element_child);

输出nodelist对象

我希望old_element_child与old_element具有相同的类型

var new_element = old_element.cloneNode(true);
var new_element_child=new_element.children;     
old_element.parentNode.replaceChild(new_element, old_element);  
old_element.replaceChild(old_element_child, new_element_child); 

2 个答案:

答案 0 :(得分:1)

children属性返回给定元素的所有子元素的节点列表(即使它只是一个,这似乎是这种情况)。你想要的是一个特定的元素,你可以使用

 var old_element_child = old_element.children[n];

n是父级内所需子级的索引(基于0)。所以,如果它是第一个孩子,那就是

var old_element_child = old_element.children[0];

答案 1 :(得分:1)

您可以尝试以这种方式复制对象:

Object.assign()方法用于将所有可枚举的自有属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

var old_element=document.getElementById('dhtml_menu-1895'); 

var copy = Object.assign({}, old_element);
console.log(copy); // here is your object copyed