0

我遇到了一个问题,我无法遍历我为编辑各种像素数据而创建的多个画布标签的 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”

4

2 回答 2

0

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

http://jsfiddle.net/FXS8u/

于 2013-07-31T18:49:31.253 回答
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);
}
于 2013-07-31T18:45:17.347 回答