0

インデックス番号が 65 ~ 90 (az キーコード) に設定された配列があります。配列をループして、キープレス イベントから生成された keynum がインデックス番号の 1 つと一致するかどうかを確認し、一致する場合は、画面上のボタンの色を赤にし、要素の innerHTML に String.fromCharCode を書き込みます。 .

私のボタンがこれだとしましょう...

<input type="button" id="a" value="A">

これは私のJSコードです...

document.onkeypress = keypress;


function keypress() {
    var a = document.getElementById("a");
    var b = document.getElementById("b");
    var c = document.getElementById("c");
    var d = document.getElementById("d");
    var e = document.getElementById("e");
    var f = document.getElementById("f");
    var g = document.getElementById("g");
    var h = document.getElementById("h");
    var i = document.getElementById("i");
    var j = document.getElementById("j");
    var k = document.getElementById("k");
    var l = document.getElementById("l");
    var m = document.getElementById("m");
    var n = document.getElementById("n");
    var o = document.getElementById("o");
    var p = document.getElementById("p");
    var q = document.getElementById("q");
    var r = document.getElementById("r");
    var s = document.getElementById("s");
    var t = document.getElementById("t");
    var u = document.getElementById("u");
    var v = document.getElementById("v");
    var w = document.getElementById("w");
    var x = document.getElementById("x");
    var y = document.getElementById("y");
    var z = document.getElementById("z");

    var buttons = [];
    buttons[65] = a;
    buttons[66] = b;
    buttons[67] = c;
    buttons[68] = d;
    buttons[69] = e;
    buttons[70] = f;
    buttons[71] = g;
    buttons[72] = h;
    buttons[73] = i;
    buttons[74] = j;
    buttons[75] = k;
    buttons[76] = l;
    buttons[77] = m;
    buttons[78] = n;
    buttons[79] = o;
    buttons[80] = p;
    buttons[81] = q;
    buttons[82] = r;
    buttons[83] = s;
    buttons[84] = t;
    buttons[85] = u;
    buttons[86] = v;
    buttons[87] = w;
    buttons[88] = x;
    buttons[89] = y;
    buttons[90] = z;

    var keynum = (window.event) ? event.keyCode: e.which; 
    var panel = document.getElementById("panel");
    var letter = String.fromCharCode(keynum);
    for(i = 65; i <= buttons.length; i++)
    {
        if(buttons[i] == keynum)
            {
           buttons[i].style.backgroundColor = 'red';
                panel.innerHTML += letter;


            }
    }
}

ボタンを押すと、対応する画面上のボタンが赤くなるようにするにはどうすればよいですか? これは私のJSフィドルです... http://jsfiddle.net/AdamMartin121/VXYFC/14/

4

1 に答える 1

0
function keypress() {


    var buttons = [];
    for (var i = 65; i <= 90; i++) {
        buttons[i] = buttons[i + 32] = document.getElementById(String.fromCharCode(i + 32));
    }

    var keynum = (window.event) ? event.keyCode : e.which;
    if (buttons[keynum]) {
        buttons[keynum].style.backgroundColor = 'red';
    }
}

と比較buttons[i]していましkeynumた。ただしbuttons[i]、数値ではなくドキュメント要素が含まれています。配列keynumへのインデックスとして使用したいだけです。buttons

buttons大文字と小文字の両方のエントリを持つように配列を変更し、ループを使用してそれを埋めました。大文字のエントリしかなかったので、何かを行うには Shift キーを押す必要がありました。

フィドル

于 2013-07-02T12:05:35.217 に答える