2016-06-08 24 views
0

你好還有Stackoverflow!用數組下拉菜單,定義每個選項的值

今天我試着用array做了一個drop-down menu。它確實有效,但之後發生的問題是定義array打印的values

截至目前,這是關於drop-down menu的代碼。

HTML

<select id="selectDestinasjon"> 
    <option>Velg ett sted</option> 
</select> 

的Javascript

var select = document.getElementById("selectDestinasjon"); 
var options = ["Konsberg", "Trysil", "Beitostølen"]; 
for (var i = 0; i < options.length; i++) { 
    var opt = options[i]; 
    var el = document.createElement("option"); 
    el.textContent = opt; 
    el.value = opt; 
    select.appendChild(el); 
} 

但我想給每個選項的值,那我以後可以impliment成一個計算器,因爲我想進行預訂服務,其中每個選項具有不同的值,計算器從當前選定的選項中檢索信息,根據選定的選項設置價格。

如果有任何東西看起來不清楚或太少,請詳細詢問,我會盡我所能解釋。

的jsfiddle https://jsfiddle.net/a3pe6zcu/

+0

你的代碼似乎工作。每個選項都有一個值 –

+0

我的意思是價格指定值。每個單獨的地方都有一個美元的價格,但通過數組實現 – ImNewToThis

+0

使用一個對象或帶有鍵的數組。 – Lewis

回答

1

您正在尋找這樣的事情?我已更新您的數據以保存該地點的價格和名稱。現在,select將文本作爲地點,價格作爲值。 Updated fiddle

var select = document.getElementById("selectDestinasjon"); 
var options = [{"place": "Konsberg","price":"$20"}, {"place":"Trysil","price":"$30"}, {"place":"Beitostølen","price":"$40"}]; 
for(var i = 0; i < options.length; i++) { 
var opt = options[i]; 
var el = document.createElement("option"); 
el.textContent = opt.place; 
el.value = opt.price; 
select.appendChild(el); 
} 
+0

我認爲這非常接近我所渴望的,但我只需要做一些要求瞭解代碼(因此我的名字)。您設置的不同值value = opt.price是否用於計算選定價格? – ImNewToThis

+0

當然不是問題。 options數組的元素是散列({'name':'value'}對)。每個元素對應於特定地點的數據(地點,價格)。 for循環與我擁有的完全一樣。但是在for循環中,你得到了這些地方的名字,但是我的'opt'將成爲散列對象。要訪問哈希,我使用'opt.place'和'opt.price'。希望這是有道理的。剩下的就是你已經擁有的。只有這3條線被改變了。 – phreakv6

+0

我想我明白,但只是incase。如果你有更多的時間在你的手上,你可以舉一個例子來看價格,看看怎麼做? – ImNewToThis

相關問題