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