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