2014-03-01 34 views
0

半假設問題,比方說,我有多個字符串,其中一個字符串可能需要根據所做的下拉選項來顯示。什麼I'me思考的東西大致如下:Jquery - 構建多個變量名稱<option>選擇

var 11 = "fast cars" 
var 12 = "slow cars" 
var 21 = "fast bikes" 
var 22 = "slow bikes" 

是被顯示的,然後通過兩個箱組合選擇的字符串:

<select id="type"> 
<option value="1">automobiles</option> 
<option value="2">motorbikes</option> 
</select> 
<select id="type2"> 
<option value="1">get there fast</option> 
<option value="2">be comfortable</option> 
</select> 

在我的主體我有代碼,不斷指的是一個變量「transtype」。我希望能夠做的就是鏈接變量「transtype」的字符串變量之一以上,即:

var one = $("#type").val(); 
var two = $("#type2").val(); 
var fullvarname = [one + two]; 
var transtype = fullvarname; 

什麼我得到,此刻,是變量「transtype」回顯「11」或「21」等,而不是變量應該鏈接的字符串。顯然這是因爲代碼將連接值看作字符串。問題是,我如何才能將它識別爲變量的名稱而不是字符串本身?

作爲一個告誡,我想指出,實際上大約有六個箱子,每個箱子都有幾個選項。嘗試使用所有可能的組合進行一次下拉將會很糟糕。而且,所需的字符串(例如「快車」實際上是包含{和[)的更多。我也熱衷於使用jquery,這樣我就可以隨時更新內容,而無需重新加載整個PHP頁面。

我是新來的Javascript/jquery,這是我無法從其他帖子在這裏和其他地方解決的少數幾個領域之一。如果上述不可行,或者如果可以通過不同的方法更好地實現,請隨時說...

+0

訪問他們,如果你想要的文字值,而不是實際值就用'的.text()',而不是'.VAL()'。和Java!= Javascript;) – Archer

+0

重點關注「Java」:D,但是我沒有在下拉列表的文本值之後。也許我應該以另一種方式給出例子,基於選擇的串聯值,選項是「快速」「汽車」,並且結果字符串是「您喜歡快速駕駛汽車」。 – user3360167

+0

除了您的示例變量名稱在JavaScript中是非法的 - 您無論何時考慮變量名的「編號」,_array_都是更好的選擇(至少在99.99至999%的情況下)。所以請使用一個。 – CBroe

回答

0

如果要使用字符串值訪問變量,可以嘗試包裝變量(11, 12 ...),然後使用obj[keyString]語法訪問它們。

所以,像這樣:

var names = {}; 
names["11"] = "fast cars"; 
names["12"] = "slow cars"; 
names["21"] = "fast bikes"; 
names["22"] = "slow bikes"; 

應該工作。與names[one+two]

DEMO

+0

這完美的作品! – user3360167

+0

對不起,還不能投票... – user3360167