Javascript getElementsByTagName()奇怪的行为

时间:2013-05-25 13:29:50

标签: javascript jquery html5 canvas

Connect4 - Game 我正在制作一个connect4游戏,当我将画布对象返回到一个数组时:

var canvas = document.getElementsByTagName('canvas');

它返回前18个对象。 Chrome javascript控制台(console.log(canvas [id]);)打印出html标记。但是在18以上它只写出画布#+ id。 因此,当我点击底部框以绘制圆圈时,我会收到错误。

function create_circle(index) {

    if (start==0) {
        color = 'red';
        start++;
    } else if (start==1) {
        color = 'black';
        start--;
    } else {
        color = 'white';
    }

    var circle = document.canvas[index].getContext('2d'); // IT SHOWS THE ERROR HERE

    circle.beginPath();
    circle.arc(40, 40, 40, 0, 2 * Math.PI, false);
    circle.fillStyle = color;
    circle.fill();
}

1 个答案:

答案 0 :(得分:2)

您使用document.canvas代替canvas变量。浏览器没有维护此类document.canvas集合。

// remove---------v
var circle = /*document.*/canvas[index].getContext('2d');