0
我的任務是編寫一些javascript以將一個比薩添加到「籃子」中。我有一個'添加到購物籃'按鈕,它需要獲得披薩的名稱,描述,尺寸和價格。Javascript獲取部分選項單選按鈕值
目前,我已經設法從「添加到購物籃」按鈕中獲得披薩的名稱和描述,但我也需要獲得由用戶選擇的單選按鈕確定的披薩的價格和尺寸。
html代碼給了我。
<td>
<table border="0" cellpadding="0">
<tbody>
<tr align="center">
<td>
<input id="size" name="Cheese" data-price="6.50" value="Small" type="radio" checked>Small
</td>
<td>
<input id="size" name="Cheese" data-price="8.50" value="Medium" type="radio">Medium
</td>
<td>
<input id="size" name="Cheese" data-price="9.99" value="Large" type="radio">Large
</td>
</tr>
<tr align="center">
<td style="padding-top: 6px">£6.50</td>
<td style="padding-top: 6px">£8.50</td>
<td style="padding-top: 6px">£9.99</td>
</tr>
</tbody>
</table>
</td>
<td>
<input id="addbasket" name="Cheese" data-description="Mozzarella cheese" value="Add to Basket" type="button" onclick="addBasket(this)">
</td>
這裏是JavaScript,我還要求節點列表轉換爲數組,然後通過濾鏡陣列來獲得,我認爲我已經與前兩行做過檢查的單選按鈕。
function addBasket(button) {
var nodes = [].slice.call(document.getElementsByName(name));
var radio = nodes.filter(function(el){return el.checked;})[0];
var pizzaname = button.name;
var pizzadesc = button.getAttribute('data-description');
var pizzaprice = radio.dataset.price;
}
現在我不知道如何從單選按鈕中獲取'數據價格'和'價值'(披薩大小)。
我得到的錯誤「遺漏的類型錯誤:無法讀取的addBasket未定義的屬性‘值’」爲pizzasize變量。對於pizzaprice變量也是一個錯誤,「Uncaught TypeError:無法在addBasket中讀取未定義的屬性'getAttribute'」。我一直在做的一個測試是使用alert(pizzaprice),並查看它是否顯示「6.50」,如果單選按鈕被選中,但它會顯示爲「未定義」或不會顯示警報。 –
您是否嘗試運行我上面張貼的代碼片段(它適用於我的計算機)並將代碼與您的代碼進行比較? – gyre
我已經把它通過了,並按預期工作,所以謝謝。然而,我已經包含了更多的比薩餅,每個人都有獨立的「添加到購物籃」按鈕,併爲其onclick調用了相同的「addBasket」功能。當按下這些按鈕時,它們都會給我第一批披薩的價值。關於如何獲得與點擊按鈕相對應的披薩值的任何想法?名稱和說明按預期工作,但價格和尺寸是從列表中的第一批披薩中選擇的值。 –