0

3つの変数a、b、cを作成しました。aとbに値を割り当て、テキストボックスも作成しました。テキストボックスに変数の名前を入力してボタンをクリックすると、テキストボックスにその変数に割り当てられた値が表示されます。とても簡単かもしれませんが、何を間違えたのかわかりません。

これがフィドルです

<html>
    <head>
        <script>
            function display(){
                var a = 2;
                var b = 3;
                var c = document.getElementById("b1").value;       
                document.getElementById("demo").innerHTML=c;
            }
        </script>
    </head>
    <body>

        <input type="text" id="b1">
        <button type="button" onclick="display()">Display</button>
        <p id="demo">Update Value.</p>

    </body>
</html> 

</ p>

4

4 に答える 4

1

最も簡単な選択は、次のように変数をオブジェクトに割り当てることです。

var vars;

function display() {
    var value = document.getElementById("b1").value;
    vars = {
        a: 2,
        b: 3,
        c: value
    }
    if (vars.hasOwnProperty(value)) { // If the entered value is a variable name
        document.getElementById("demo").innerHTML = vars[value]; // Display the variable
    } else { // Otherwise
        document.getElementById("demo").innerHTML = value; // display the value
    }
}

実施例

をこれif/elseに置き換えて、少し短くすることができます。

document.getElementById("demo").innerHTML = vars.hasOwnProperty(value) // If
                                                ? vars[value]          // Then
                                                : vars.c;              // Else
于 2012-12-27T11:54:57.200 に答える
0

あなたが探しているのは eval() メソッドです (簡単な Google 検索を行いますが、お勧めしません)。

    <script>
        function display(){
            var a = 2;
            var b = 3;
            var c = document.getElementById("b1").value;       
            document.getElementById("demo").innerHTML=(eval(c));
            // if user enters b in the input field, then the html in demo will be 3
            // if user enters a in the input field, then the html in demo will be 2
        }
    </script>

繰り返しますが、お勧めしません!

于 2012-12-27T12:02:46.627 に答える
0

-element で変数を直接宣言すると、scriptそれらは -object のプロパティとして作成され、そのwindowようにアクセスできます。したがって、次のようにスクリプトを更新して、変数の内容を表示します。

<html>
    <head>
        <script>
            var a = 2, b = 3;
            function display() {
                var strVarName = document.getElementById('b1').value;
                if(window.hasOwnProperty(strVarName)) {
                    document.getElementById('demo').innerHTML = window[strVarName];
                } else {
                    document.getElementById('demo').innerHTML = 'Variable ' + strVarName + ' does not exist.'
                }
            }
        </script>
    </head>
    <body>
        <input type="text" id="b1">
        <button type="button" onclick="display()">Display</button>
        <p id="demo">Update Value.</p>
    </body>
</html>

これは、表示関数内で変数を宣言すると機能しませんが、このコードがシステム内でこの 1 つの単純な関数以外の何かに使用される場合、これを行うとは思えません。

于 2012-12-27T12:03:31.417 に答える
0

この方法を試してください:

<html>
    <head>
        <script>
            function display(){
                var a = 2;
                var b = 3;
                var c = document.getElementById("b1").value;
                if(c==a){
                    document.getElementById("demo").innerHTML='a';
                }
                if(c==b){
                    document.getElementById("demo").innerHTML='b';
                }
            }
        </script>
    </head>
    <body>
        <input type="text" id="b1">
        <button type="button" onclick="display()">Display</button>
        <p id="demo">Update value.</p>
    </body>
</html>

デモ

于 2012-12-27T11:55:13.973 に答える