Javascript 我可以向动态创建的two.js元素添加类吗?

Javascript 我可以向动态创建的two.js元素添加类吗?,javascript,two.js,Javascript,Two.js,我使用下面显示的代码在包装器(div)中创建46个小圆圈绘制形状 let elem = document.getElementById('draw-shapes'); let params = { width: 1024, height: 768 }; let two = new Two(params).appendTo(elem); for (let i = 1; i < 47; i++) { circle = two.makeCircle(x, y, radius); cir

我使用下面显示的代码在包装器(div)中创建46个小圆圈绘制形状

let elem = document.getElementById('draw-shapes');
let params = { width: 1024, height: 768 };
let two = new Two(params).appendTo(elem);

for (let i = 1; i < 47; i++) {
  circle = two.makeCircle(x, y, radius);
  circle.fill = 'green';
  circle.stroke = 'white';
  circle.linewidth = 1;
  circle.id = i;
}
let elem=document.getElementById('draw-shapes');
设params={宽度:1024,高度:768};
设two=新two(参数).appendTo(元素);
for(设i=1;i<47;i++){
圆=2。生成圆(x,y,半径);
circle.fill='绿色';
circle.stroke='白色';
circle.linewidth=1;
circle.id=i;
}

所有图纸均使用Two.js库制作。我在文档中读到,我可以更改所创建元素的id,但我还需要为每个元素分配一个类。我尝试了从纯js setAttribute到jQuery.attr和.addClass方法的所有方法,但都不起作用,所以我开始怀疑这是否可行?如果有人知道路,请告诉我怎么走。谢谢。

没有内部实用程序或属性可以访问每两个元素的DOM节点

但是您指定的
id
确实作为
two-
添加到实际节点中

因此,您可以使用普通的
文档.getElementById

那么你的情况呢

let elem=document.getElementById('draw-shapes');
设params={
宽度:300,
身高:300
};
设two=新two(参数).appendTo(元素);
for(设i=1;i<20;i++){
const circle=2.makeCircle(i*10,i*10,40);
circle.fill='绿色';
circle.stroke='白色';
circle.linewidth=1;
circle.id=`two circle-${i}`;
}
二、更新();
//每五个元素添加一个classname;
对于(设i=1;i<20;i+=5){
const circleNode=document.getElementById(`two circle-${i}`);
circleNode.classList.add('classname');
circleNode.addEventListener('mouseover',function(){
const path=two.scene.getById(this.id)
path.scale=1.2;
二、更新();
});
circleNode.addEventListener('mouseout',function(){
const path=two.scene.getById(this.id)
path.scale=1;
二、更新();
});
}
.classname{
笔画宽度:5;
笔画:红色;
填充物:黄色;
光标:指针;
}


至少发布一次您的尝试,有人可以帮助您找出错误所在。问题可能与此有关?可能是@AndrewL64的复制品你是什么意思?它是Two.js,所以html只是??我得到了错误->未捕获的TypeError:在使用示例时无法读取null的属性“classList”。@JakubMoz确实如此。在节点进入DOM之前,需要调用
update
。用一个有效的例子更新了代码。效果很好。谢谢,我只是想问个简单的问题。我想给这些元素添加一个类,因为我想给它们添加框阴影或放置阴影,以创建外发光效果,但没有框阴影:或文件管理器:drop-shadow();在css中工作。@JakubMoz有关应用阴影的信息,请参阅。(您需要通过svg而不是CSS来实现)