1

これは、Shift + 1 (または 2,3...9) をクリックした場合にユーザーに警告する JavaScript コードのサンプルです。

しかし、ご覧のとおり、このコードはほとんど同じです。

a = window.event.keyCode;

var b = window.event.shiftKey

if (a == 49 && b) {
    alert(document.getElementById('alert1').length)
}
if (a == 50 && b) {
    alert(document.getElementById('alert2').length)
}
if (a == 51 && b) {
    alert(document.getElementById('alert3').length)
}
if (a == 52 && b) {
    alert(document.getElementById('alert4').length)
}
if (a == 53 && b) {
    alert(document.getElementById('alert5').length)
}
if (a == 54 && b) {
    alert(document.getElementById('alert6').length)
}
if (a == 55 && b) {
    alert(document.getElementById('alert7').length)
}
if (a == 56 && b) {
    alert(document.getElementById('alert8').length)
}
if (a == 57 && b) {
    alert(document.getElementById('alert9').length)
}

より少ないコードとブラウザによって生成され、必要なときに実行される他のコードを書くことで同じ仕事をするjavascript(jQueryでもかまいません)コード(for(){}メソッドまたは何か他のものを使用)はありますか?

4

2 に答える 2

9

実行可能な Javascript を作成するのではなく、コードを確認してください。

繰り返しコードは、ほとんどの場合、ループとして、またはあなたの場合は数学で書くことができます。

if(a < 58 && a > 48 && b) {
  alert(document.getElementById('alert'+(a-48)).length)
}
于 2012-12-30T17:56:07.020 に答える
2

おそらく、コード生成と実行は本当に必要ないでしょう。それはかなり危険になる可能性があります。

必要なのは、コードを少し乾燥させることだけです。

var ALERT_KEYCODE_OFFSET = 48;
var alertIndex, alertId;
if (a >= 49 && a <= 57 && b)
{
    alertIndex = a - ALERT_KEYCODE_OFFSET;
    alertId = 'alert' + alertIndex;
    alert(document.getElementById(alertId).length);
}
于 2012-12-30T17:58:40.770 に答える