Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.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 循环遍历编号的html标记id';s_Javascript_Html_Canvas_For Loop - Fatal编程技术网

Javascript 循环遍历编号的html标记id';s

Javascript 循环遍历编号的html标记id';s,javascript,html,canvas,for-loop,Javascript,Html,Canvas,For Loop,我遇到了一个问题,我无法循环通过我创建的多个画布标记的id来编辑各种像素数据。所有画布的id都在0-n之间。但是当id被创建时,这些数字就会变成字符串 那么,如果我创建了一个循环,循环遍历与标记的id相对应的数字,那么如何使它成为.getElementById();方法将数字值识别为字符串值?(这可能有点不清楚,但代码应该会把事情弄清楚) for(变量i=0;i

我遇到了一个问题,我无法循环通过我创建的多个画布标记的id来编辑各种像素数据。所有画布的id都在0-n之间。但是当id被创建时,这些数字就会变成字符串

那么,如果我创建了一个循环,循环遍历与标记的id相对应的数字,那么如何使它成为.getElementById();方法将数字值识别为字符串值?(这可能有点不清楚,但代码应该会把事情弄清楚)

for(变量i=0;i<3;i++){
var useGetImageData=函数(i){
var canvas=document.getElementById(i);
var context=canvas.getContext(“2d”);
var imageData=context.getImageData(0,0,canvas.width,canvas.height);
var数据=imageData.data;
}
}

画布id是;“0”、“1”、“2”试试这个。您也没有调用该函数(无论如何,在循环内部创建该函数是不好的)

var useGetImageData=函数(i){
var canvas=document.getElementById(i);
var context=canvas.getContext(“2d”);
var imageData=context.getImageData(0,0,canvas.width,canvas.height);
var数据=imageData.data;
}
对于(变量i=0;i<3;i++){
//使用GetImageData(“”+i);
//正如@Andrew指出的,它被解释为一个字符串。
userGetImageData(i);
}

您不必做任何事情,
getElementById
已经知道元素ID总是字符串。你发布的代码很有效


您可以使用
document.getElementById(“”+i)您也可以这样做:
vari=42;i、 toString();//“42”
无需使用
''+i
将数字转换为字符串。可以,但我收到一个类型错误,表明我无法。getContext为null。这不是因为VarCanvas没有调用正确的元素吗?你能再给我们一点吗?也许是输出HTML的一部分?
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;
   }
}
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);
}