Javascript 如何使用cloneNode&;svg脚本中的appendChild方法?

Javascript 如何使用cloneNode&;svg脚本中的appendChild方法?,javascript,dom,svg,Javascript,Dom,Svg,我的问题是如何在svg脚本中使用Node对象的方法? 我拼命地寻找答案,但对我来说没有用。我想将两个svg元素列表合并在一个组中。这是我的密码: <!DOCTYPE html> <html> <head> </head> <body> <svg version="1.1" id="my_svg" viewBox="0 0 1440 900"> <g id="blocks"> <rect x="941.616

我的问题是如何在svg脚本中使用Node对象的方法? 我拼命地寻找答案,但对我来说没有用。我想将两个svg元素列表合并在一个组中。这是我的密码:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<svg version="1.1" id="my_svg" viewBox="0 0 1440 900">
<g id="blocks">
<rect x="941.616" y="35.935" width="26.5" height="26.5"/>
<polygon points="936.717,62.391 936.717,62.391 936.717,62.391 936.717,35.934 910.261,35.934 910.261,35.935 
910.261,35.935 910.26,35.935 910.26,62.391 910.261,62.391 936.717,62.391 "/>
<rect x="741.162" y="120.203" width="26.5" height="26.5"/>
<polygon points="736.263,146.66 736.263,146.659 736.263,146.659 736.263,120.203 709.807,120.203 709.807,120.203 
709.806,120.203 709.806,120.203 709.806,146.66 709.806,146.66 736.263,146.66 "/>
...
</g>
</svg>
<script type="text/javascript">
function myFunction(){
var list_a = [];
var new_list = document.getElementById("blocks");
var rects = new_list.getElementsByTagName("rect");
var polygons = new_list.getElementsByTagName("polygon");
var length = rects.length + polygons.length;
list_a = rects.cloneNode(true);
polygons.appendChild(list_a);
console.log(list_a.length);
}
</script>
</body>
</html>

...
函数myFunction(){
var列表_a=[];
var new_list=document.getElementById(“块”);
var rects=new_list.getElementsByTagName(“rect”);
var polygons=new_list.getElementsByTagName(“多边形”);
变量长度=rects.length+polygons.length;
list_a=rects.cloneNode(真);
多边形。追加子对象(列表_a);
控制台日志(列表长度);
}

您必须循环遍历nodeList元素,不能直接调用nodeList上的
cloneNode()
您的意思是我必须使用它们的子节点吗?不,
getElementsByTagName()
将返回一个nodeList,一个类似数组的对象,包含所有匹配的元素。您必须循环通过此节点列表才能接触包含的节点。这些节点有一个
cloneNode()
属性,而列表没有。