web-dev-qa-db-ja.com

document.getElementById()で文字列変数を使用できますか?

これが私のコードです:

function figureSelector () {
    document.getElementById("rook").onclick = function  () {
        curr = '"rook"';
    };
};

function moveLine(){
    document.getElementById("upButton").onclick = function() { 
            document.getElementById(curr).style.top = document.getElementById(curr).offsetTop - getPix() * 62  + "px"; 
            counter= counter + getPix();
    }; 

チェスの駒を動かすための汎用的な関数を書きたいのですが。私が欲しいのは、チェスの駒をクリックしてから上ボタンを押すと上に上がることだけです。

6

はい、できます。使うだけ

curr = 'rook';

(余分な引用符なし)

3
crates_barrels

はい、あなたは文字列変数を使うことができます:

HTML:

<div id="name" style="width:300px;height:300px;background:red"></div>

javascript:

var b = 'name';
document.getElementById(b).innerHTML = 'none';

ここではjsfiddle

6
Alex

次のようなこともできます:

function mark(yy)  {
    for (var ii = 0; ii < 7; ii++ )  {
        if (  ii == yy )  {
            document.getElementById("b"+ii).style.fontWeight = "bold";
         }
...

ただし、ループ制限に注意して、一致するIDがあることを確認してください。なぜ("b"+ii)はエラーになり、最終的にはエラーが正確に原因であることがわかりました。ええと...

0
Howard_L