我试图在类选择器获得的多个画布上绘制相同的东西。我做错了什么?
var canvases = document.getElementsByClassName('canvas');
for( var i=0; i<canvases.length; i++){
ctx = canvases[i].getContext('2d');
ctx.arc(50, 50, 50, 0, 1.5*Math.PI);
ctx.lineWidth = 15;
ctx.strokeStyle = 'black';
ctx.stroke();
}
她是fiddle
答案 0 :(得分:3)
您需要将它们声明为<canvas>
元素,而不是<div>
元素。画布是他们自己特定的HTML5元素。
相应地也可以删除该类并使用getElementsByTagName
而不是getElementsByClassName
进行一些小的CSS和标记更改:
<强> HTML 强>
<canvas></canvas>
<canvas></canvas>
<canvas></canvas>
<强> CSS 强>
canvas {
width: 100px;
height: 100px;
background-color: yellow;
display: inline-block;
}
<强> JS 强>
var canvases = document.getElementsByTagName('canvas');
for( var i=0; i<canvases.length; i++){
ctx = canvases[i].getContext('2d');
ctx.arc(50, 50, 50, 0, 1.5*Math.PI);
ctx.lineWidth = 15;
ctx.strokeStyle = 'black';
ctx.stroke();
}