2016-11-07 119 views
0

我需要通過類來拉輸入的值,然後「回聲」或引用,關聯數組值是否有可能在陣列中的回聲一個變量的值引用

到目前爲止,我的JavaScript是這樣的:

var phone_code = document.getElementsByClassName('model').value; 
var phone = []; 
phone["6s"] = "23.52"; 
phone["5s"] = "9.88"; 
phone["5Se"] = "14.59"; 
phone["7"] = "28.49"; 
phone["s7e"] = "27.49"; 
phone["s7"] = "23.52"; 
phone["s6e"] = "21.04"; 
phone["s6"] = "18.56"; 
phone["a5"] = "12.61"; 
phone["j5"] = "7.65"; 
phone["a3"] = "8.64"; 
phone["j3"] = "5.17"; 
phone["p9"] = "16.08"; 
phone["p9lite"] = "8.64"; 

document.getElementById("phone-cost").innerHTML = phone[phone_code] 

和陣列輸出爲:

Your Phone would cost you £<span id="phone-cost"></span> per month 

但是,輸出只是寫着「不確定」,所以我不知道,如果JavaScript是問題,或者我需要進一步的回看在凝固酶原ss

phone_code需要使用class,因爲它從表單啓用/禁用的下拉列表中拉取,無論啓用哪個下拉列表都需要使用。我想我的問題是,

phone[phone_code] 

是不是我應該如何引用變量,但我無法找到正確的方式一個明確的答案在一個陣列中格式化

感謝

+0

我不明白是什麼問題。 – Amy

+0

@Amy輸出變成「未定義」。如果上面的JavaScript看起來100%,那麼也許我需要尋找其他地方的問題? – Frsti

+1

設置該值後,通過使用'console.log(phone_code)'嘗試調試。這顯示了什麼價值?是否有任何多餘的字符,例如您沒有考慮到的空白字符? –

回答

1

兩件事:

(1).getElementsByClassName()返回一個類似數組的對象,而不是單個元素。 (2)儘管可以像你在代碼中一樣使用數組,但是使用普通對象要好得多。

見下文:

var btn = document.getElementById('getPrice'); 
 

 
btn.addEventListener('click', function() { 
 
    var phone_code = document.getElementsByClassName('model')[0].value; 
 

 
    var phone = {}; 
 
    phone["6s"] = "23.52"; 
 
    phone["5s"] = "9.88"; 
 
    phone["5Se"] = "14.59"; 
 
    phone["7"] = "28.49"; 
 
    phone["s7e"] = "27.49"; 
 
    phone["s7"] = "23.52"; 
 
    phone["s6e"] = "21.04"; 
 
    phone["s6"] = "18.56"; 
 
    phone["a5"] = "12.61"; 
 
    phone["j5"] = "7.65"; 
 
    phone["a3"] = "8.64"; 
 
    phone["j3"] = "5.17"; 
 
    phone["p9"] = "16.08"; 
 
    phone["p9lite"] = "8.64"; 
 

 
    document.getElementById("phone-cost").innerHTML = phone[phone_code]; 
 
});
<select class="model"> 
 
    <option value="6s">6s</option> 
 
    <option value="5s">5s</option> 
 
    <option value="5Se">5Se</option> 
 
</select> 
 
<input type="button" value="Get Price" id="getPrice" />Your Phone would cost you £<span id="phone-cost"></span> per month

+0

謝謝!我能夠將此功能嵌入到我的更改功能中。不知道有關選擇輸入,乾杯! – Frsti

相關問題