你用的是啥语言???
var elArr = []; for(var i = 0;i < 1000; i++){ elArr[i] = document.createElement('circle'); }
java啊
@LiloT: 那你Element[] el= null;这句不能等于null,代码贴多一点。。
@幻天芒: 我用了一个开源的软件batik,生成SVG的图像,在生成的时候必须每个对象的名字都不相同,如果相同的话,下一个相同名字的对象就会覆盖掉前一个。所以我想用一个数组来自动创建一些Element对象,用数据组名称来区分不同的对象。这样就可以添加到跟节点上了。不知道你能不能明白我说的?
el[j] = (GenericElement) doc.createElement("circle");// 库中带着SVG的标记枚举值
el[j].setAttributeNS(null, "cx",
String.valueOf(ordinateArray[i]));
el[j].setAttributeNS(null, "cy",
String.valueOf(ordinateArray[i + 1]));
el[j].setAttributeNS(null, "r", String.valueOf(50));
el[j].setAttributeNS(null, "fill", "#219E3E");
Node stNode = doc.getElementsByTagName("svg").item(0);
stNode.appendChild(el[j]);
@LiloT: 既然名字相同才会覆盖,那你没创建一个,就给定一个不一样的名字就可以了哇。我没用过这个库,所以大概是按照我的理解来回答的。
@幻天芒: 是这个样子的,但是我有两千多个对象啊,手工建肯定不行啊。
@LiloT: 难道变量名重复都不行?那你现在这种数组方式没啥问题吧。
@幻天芒: 是啊,DOM接口上说在Node上调用appendChild,如果在DOM树中对象已经存在,则会先移除,然后再添加。
@幻天芒: 所以我就想让创建的对象名字不同啊,采用数组的方式,用数组名区分。请问还有其他的方式自动创建对象的名字不同么?
@LiloT: 你说的这个名字是变量名。那么没啥好办法创建不同。
@幻天芒: 我就想实现一个批量添加DOM节点
@LiloT: 你那代码应该就可以了吧。
@幻天芒: 不行
@LiloT: 错误原因呢?错误信息呢?
违背接口依赖原则即可。