Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript在多张画布上绘制_Javascript_Html - Fatal编程技术网

Javascript在多张画布上绘制

Javascript在多张画布上绘制,javascript,html,Javascript,Html,我试图在由类选择器获得的多张画布上绘制相同的东西。我做错了什么 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.stroke

我试图在由类选择器获得的多张画布上绘制相同的东西。我做错了什么

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();    
}
var canvasses=document.getElementsByClassName('canvas');

对于(var i=0;i您需要将它们声明为
元素,而不是
元素。画布是它们自己特定的HTML5元素

因此,您还可以摆脱该类,使用
getElementsByTagName
而不是
getElementsByClassName
,只需对CSS和标记进行一些小的更改:

HTML

<canvas></canvas>
<canvas></canvas>
<canvas></canvas>
JS

canvas {
    width: 100px;
    height: 100px;
    background-color: yellow;
    display: inline-block;
}
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();    
}
var canvases=document.getElementsByTagName('canvas');

对于(VARI=0;看,你们赢了!;P,在帖子回答中要彻底得多。删除我的。