循环编号的html标记id

时间:2013-07-31 18:41:05

标签: javascript html canvas for-loop

我遇到了一个问题,我无法遍历我创建的多个画布标签的id来编辑各种像素数据。所有画布的id都在0到n之间。但是当创建id时,数字会变成字符串。

所以,如果我创建一个迭代遍历与标签的id相对应的数字的循环,我该如何使它成为.getElementById();方法会将数值识别为字符串值? (这可能有点不清楚,但代码应该清理一切)

for (var i = 0; i < 3; i++) {
var useGetImageData = function(i){

    var canvas=document.getElementById(i);
    var context=canvas.getContext("2d");
    var imageData = context.getImageData(0,0,canvas.width,canvas.height);
    var data = imageData.data;
   }
}

画布ID是; “0”,“1”,“2”

2 个答案:

答案 0 :(得分:0)

试试这个。你也没有调用函数(无论如何在循环中创建都很糟糕。)

var useGetImageData = function(i){

    var canvas=document.getElementById(i);
    var context=canvas.getContext("2d");
    var imageData = context.getImageData(0,0,canvas.width,canvas.height);
    var data = imageData.data;
}
for (var i = 0; i < 3; i++) {
    // useGetImageData(''+i);
    // As @Andrew points out, it gets interpreted as a string.
    userGetImageData(i);
}

答案 1 :(得分:0)

您不必做任何事情,getElementById已经知道元素ID总是字符串。您发布的代码正常运作。

http://jsfiddle.net/FXS8u/