我想知道是否可以在提示框中输入一个变量的值,让它在原始变量的警报中返回给我。JS:在提示框中输入一个TRUE值并让它提醒其变量
说:var myGoal = "answer";
如果我输入“answer
”变成了提示,将一个好方法是什么照顾我的“answer
”值,搜索,并让它在警报返回myGoal
?
我想知道是否可以在提示框中输入一个变量的值,让它在原始变量的警报中返回给我。JS:在提示框中输入一个TRUE值并让它提醒其变量
说:var myGoal = "answer";
如果我输入“answer
”变成了提示,将一个好方法是什么照顾我的“answer
”值,搜索,并让它在警报返回myGoal
?
function test()
{
var answer = prompt("Hello? What is your name?",'');
alert(answer);
}
嘿,关闭。我说它很差。我的意思是,有一种方法可以正确地输入提示符中的内容,然后搜索该值(字符串/数字)并返回其变量。 说:var myGoal =“answer”; 如果我在提示中输入“答案”,那么采用“答案”的搜索值并让它返回警报中的myGoal的好方法是什么? – Francis 2009-10-08 03:23:25
通过使用eval函数来实现您所希望的唯一方法。 Eval也被称为“邪恶”功能。它会给您的代码带来巨大的安全漏洞,而且效率极低。不要使用eval。
问题是分配给变量的值总是字符串,数字,布尔值,未定义,数组,函数或对象字面值。您不能将变量名称分配给另一个变量作为值,因为当一个变量分配给另一个变量时,变量的内容就是实际分配的内容。
您将不得不重新设计您正在尝试写入的测试,以明确测试提供的值,而不是将字符串转换为变量名称。尽管一切都在全局对象(窗口),并且就会立刻发出警告,当它找到一个等于你正在寻找的价值
function test(val)
{
for (var i in window)
{
if (window.hasOwnProperty(i) && window[i] === val)
{
alert(i);
}
}
}
这基本上迭代:
像这样的事情会做的伎俩。
如果你愿意改变你稍微方法:
var Data = new Object();
Data["myGoal"] = "answer";
// ...
// Get response from prompt...
var response = /* ... */;
for (var key in Data)
{
if (Data[key] == response)
{
alert(key);
}
}
警报会说“答案”,因为这就是被分配到myGoal,当你找到它。我想不出有什么理由要这样做,你能指定你的用例吗? – 2009-10-08 03:37:53
请注意'window.prompt':它在很多常见的IE 7设置中都不起作用(取决于安全设置) – 2009-10-08 09:33:15