0

私は、スクリプトがユーザーにプロンプ​​トを表示し、入力として数字を要求し、数字を文字に変換してユーザーに表示するという基本的な段階でjavascriptプロジェクトを作成しようとしています。ただし、スクリプトが正常に機能していません。

<html>
<head>
<script type="text/javascript">
function num()
{
    var arr1=new Array();
    var arr2=new Array();
    var i;
    var start=0;
    var end=start + 1;
    arr1[0]=prompt('Enter Number');
    for (i=0;i<2;i++)
    {
        arr2[i]=arr1[0].slice(start, end);
        arr2[i]=parseInt(arr2[i]);
        start++;
        end=start + 1;
        switch(arr2[i])
        {
            case 1:
                document.body.innerHTML = document.body.innerHTML + 'one';
                break;
            case 2:
                document.body.innerHTML = document.body.innerHTML + 'two';
                break;
            case 3:
                document.body.innerHTML = document.body.innerHTML + 'three';
                break;
            case 4:
                document.body.innerHTML = document.body.innerHTML + 'four';
                break;
            case 5:
                document.body.innerHTML = document.body.innerHTML + 'five';
                break;
            case 6:
                document.body.innerHTML = document.body.innerHTML + 'six';
                break;
            case 7:
                document.body.innerHTML = document.body.innerHTML + 'seven';
                break;
            case 8:
                document.body.innerHTML = document.body.innerHTML + 'eight';
                break;
            case 9:
                document.body.innerHTML = document.body.innerHTML + 'nine';
                break;
        }
    }
}
onload=num();
</script>
</head>
<body>
</body>
</html>
4

2 に答える 2

3

特に、私は構造が本当に好きではありませんswitch。私はJavaScriptリテラルオブジェクト表記が好きです。

以下を確認してください。

html

<input type="button" id="getMyNumber" value="Get my Number"/>

JavaScript + jQuery

$(function() {
  $('#getMyNumber').on('click', function() {
      var numbers = {
          "1": "One",
          "2": "Two",
          "3": "Three",        
          "4": "Four",
          "5": "Five",
          "6": "Six",
          "7": "Seven",
          "8": "Eight",
          "9": "Nine",
          "10": "Ten",
          "default": "No number typed!"
      };
      var input = prompt("Type a number: ");                     
      alert(numbers[input] || numbers["default"]);
   });
});

必要に応じて、jsFiddleを使用します。変換やトリックは必要ありません。単純なJavaScriptだけです。

いくつかの参考文献:

Mozilla-オブジェクトの操作

スイッチに対する訴訟

- 編集 -

批評家(jQueryの読み込み、重い読み込みなど)を回避するために、JavaScriptのみを使用したソリューションを次に示します。

html

<input type="button" id="getMyNumber" value="Get my Number" onclick="getNumberRepresentation()" />

JavaScriptのみ

function getNumberRepresentation() {
  var numbers = {
      "1": "One",
      "2": "Two",
      "3": "Three",        
      "4": "Four",
      "5": "Five",
      "6": "Six",
      "7": "Seven",
      "8": "Eight",
      "9": "Nine",
      "10": "Ten",
      "default": "No number typed!"
  };
  var input = prompt("Type a number: ");                     
  alert(numbers[input]);
}

別のjsFiddleバージョン。

于 2012-08-17T18:08:51.740 に答える
0

私があなたのために作ったこのフィドルをチェックしてください。

編集:出典:

HTML:

<p onclick="javascript:ask();">Click</p>​

Javascript:

function ask(){

    var inputAsString;
    var userInput = prompt("Pick a number");

    switch( parseInt(userInput) ){

        case 1:
            inputAsString = "One";
        break;
        case 2:
            inputAsString = "Two";
        break;
        default:
            inputAsString = "I don't know...";           
    }

    alert( "\"" + userInput + "\" as a string is: " + inputAsString );
}​
于 2012-08-17T17:57:30.387 に答える