Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在文本框中输入变量名并获取相应的值_Javascript_Variables_Updates - Fatal编程技术网

Javascript 在文本框中输入变量名并获取相应的值

Javascript 在文本框中输入变量名并获取相应的值,javascript,variables,updates,Javascript,Variables,Updates,我已经创建了3个变量a,b,c。我给a和b赋值,还制作了一个文本框。我要做的是在文本框中输入变量的名称并单击按钮,然后文本框应该显示分配给该变量的值。这可能很简单,但我不知道我做错了什么 这是 <html> <head> <script> function display(){ var a = 2; var b = 3;

我已经创建了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> 

函数显示(){
var a=2;
var b=3;
var c=document.getElementById(“b1”).值;
document.getElementById(“demo”).innerHTML=c;
}
展示
更新值


最简单的选择是将变量分配给对象,如下所示:

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
    }
}

<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> 
if/else
可以替换为以下内容,使其略短一些:

document.getElementById("demo").innerHTML = vars.hasOwnProperty(value) // If
                                                ? vars[value]          // Then
                                                : vars.c;              // Else
试着这样做:

<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>

函数显示(){
var a=2;
var b=3;
var c=document.getElementById(“b1”).值;
如果(c==a){
document.getElementById(“demo”).innerHTML='a';
}
如果(c==b){
document.getElementById(“demo”).innerHTML='b';
}
}
展示
更新值


您正在寻找的是eval()方法(不建议在谷歌上快速搜索)


函数显示(){
var a=2;
var b=3;
var c=document.getElementById(“b1”).值;
document.getElementById(“demo”).innerHTML=(eval(c));
//如果用户在输入字段中输入b,则演示中的html将为3
//如果用户在输入字段中输入a,则演示中的html将为2
}

再次,不推荐

如果直接在
脚本
-元素中声明变量,则会将它们创建为
窗口
-对象的属性,并且可以这样访问。因此,只需更新脚本,如下所示,以显示变量的内容:

<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>

变量a=2,b=3;
函数显示(){
var strVarName=document.getElementById('b1')。值;
if(window.hasOwnProperty(strVarName)){
document.getElementById('demo').innerHTML=window[strVarName];
}否则{
document.getElementById('demo')。innerHTML='Variable'+strVarName+'不存在。'
}
}
展示
更新值


如果在display函数中声明变量,这将不起作用,但是如果在系统中使用这段代码,除了这个简单函数之外,你似乎不会这样做。

示例:如果我输入a并单击按钮..那么它应该显示2mm不,不应该,不应该使用该代码,它应该显示:a,您需要有一个
switch
语句或一些东西来表示您想用一个变量的值替换字段的值。这样做时,它不是很灵活。添加变量时,还必须添加
if
语句。另外,使用
if/else
,或switch/case语句,否则所有
if
语句都将被计算,而只有一个
true
可以通过其他方式进行计算。直接在用户输入上使用
eval
,只不过是要求有人弄乱你的代码。不需要向下投票,因为这是op想要的答案。我对他说了两句话,让他在使用eval之前研究它。如果一个OP正在寻找可以用多种方式完成的事情,建议对OP的代码进行调整通常是一个好主意,如果这意味着消除巨大的安全问题
eval
通常是否决票的充分理由,因为通常存在替代方案。此外,用户往往不做进一步的研究就复制代码。至少,解释为什么
eval
是邪恶的,而不是建议使用它,并告诉OP寻找他不应该使用它的理由。对于开发人员来说,了解最佳和最坏的实践是件好事。我们都知道eval是不好的,除非有人问这样的问题。现在OP也知道了,我会的。从搜索中保存用户;-)