2013-06-28 156 views
1

我想使用包含字符串的變量來獲取HTML元素,該字符串也是我的HTML元素的名稱。當調用包含字符串的變量時,我不想獲取字符串本身,而是獲取具有相同名稱的HTML元素的ID。 我該怎麼做?通過字符串獲取HTML元素

特別,我想這樣做:

從來就得到了一些對象:

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

你能幫我嗎?

+0

你'aktuellerCanvas'只是一個字符串,而不是一個HTML元素 – leonhart

+0

的document.getElementById( 「output_」 +(計數%3 ++))? –

+0

'count%3 ++'不合法。你可能意思是'++ count%3'。 – Jon

回答

1

你可以在這裏因爲使用document.getElementById(),它必須元素的ID作爲字符串

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

將做的工作!

但請注意,您無法直接在HTML元素上應用「putImageData」,您必須將其應用於其2D環境!請參見下面的代碼:

var ctx = aktuellerCanvas.getContext("2d"); 
ctx.putImageData(image, 0, 0, 0, 0, width, height); 
+0

關於「PutImageData」的W3School文檔:http://www.w3schools.com/tags/canvas_putimagedata.asp – Ricola3D

1

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

而且 (count % 3 ++)無效

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

0

如果ID在[1, 3]代碼的範圍返回元素標識符名稱應該是:

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

假設你開始count == -1,上面的語句將返回output_1你第一次調用它,output_2第二次和output_3第三;然後重複。

然後你使用getElementById()實際元素:

aktuellerCanvas = document.getElementById(aktuellerCanvasId);