2013-07-31 45 views
0

我遇到了一个问题,我无法循环显示编辑各种像素数据的多个canvas标记的id。所有画布的ID都在0 - n之间。但是,当创建id时,数字会变成字符串。因此,如果我创建一个循环遍历与标记的id相对应的数字,那么如何使它成为.getElementById();方法会将数字值识别为字符串值? (这可能有点不清楚,但代码应该清除的东西)循环编号的html标记id's

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; 
    } 
} 

canvas ID是; “0”,“1”,“2”

+0

你可以使用'的document.getElementById( '' + I);' – kalley

+0

您也可以做到这一点: '变种I = 42; i.toString(); //“42”' –

回答

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); 
} 
+0

不需要使用'''+ i'将数字转换为字符串。 – Andrew

+0

好的,但我得到一个类型错误,指出我不能.getContext的null。那不是因为var canvas没有调用正确的元素吗? – user2517142

+0

你能给我们多一点吗?也许是一块输出HTML? – kalley