我想知道是否可以在提示框中輸入一個變量的值,讓它在原始變量的警報中返回給我。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