1

我想使用一个包含字符串的变量来获取 HTML 元素,该字符串也是我的 HTML 元素的名称。调用包含字符串的变量时,我不想获取字符串本身,而是获取具有相同名称的 HTML 元素的 ID。我怎样才能做到这一点?

特别是,我想这样做:

我有一些对象:

<canvas width="250" height="250" id="output_1"></canvas>
<canvas width="250" height="250" id="output_2"></canvas>
<canvas width="250" height="250" id="output_3"></canvas>

在脚本中,我创建了一个等于 ID 的字符串:

var aktuellerCanvas;
var count = -1;

后来想通过ID来抓取元素,先是“output_1”,然后是“output_2”等等....我试过这个,但是没有成功。我想,我只是在变量 aktuellerCanvas 中调用字符串。

count++;
aktuellerCanvas = "output_" + (count % 3 ++);

aktuellerCanvas.putImageData(image, 0, 0, 0, 0, width, height);

你能帮助我吗?

4

4 回答 4

1

aktuellerCanvas = document.getElementById("output_" + (count % 3 ++))

(count % 3 ++)无效

您可能需要(count++ % 3 )(++count % 3)

于 2013-06-28T09:02:10.700 回答
1

您可以在此处使用document.getElementById(),因为您将元素的 id 作为字符串

aktuellerCanvas = document.getElementById("output_" + (count % 3))
于 2013-06-28T09:00:59.303 回答
0
aktuellerCanvas = document.getElementById("output_" + (count++ % 3));

会做的工作!

但请注意,您不能直接在 HTML 元素上应用“putImageData”,您必须在其 2D 上下文中应用它!请看下面的代码:

var ctx = aktuellerCanvas.getContext("2d");
ctx.putImageData(image, 0, 0, 0, 0, width, height);
于 2013-06-28T09:01:21.803 回答
0

如果 id 在[1, 3]代码范围内,则返回元素标识符名称应该是这样的:

aktuellerCanvasId = "output_" + (++count % 3 + 1);

假设您从 开始count == -1,上面的语句将output_1在您第一次调用它时返回,output_2第二次和output_3第三次;然后它重复。

之后,您使用以下方法获得实际元素getElementById()

aktuellerCanvas = document.getElementById(aktuellerCanvasId);
于 2013-06-28T09:07:24.480 回答