我想創建一個腳本,這將提供製作營養素數量的食物表的可能性。讓我們說每日菜單。 當用戶點擊按鈕時,成分添加到表格中。有+是和 - 在成分的線路按鍵由1我該如何更改div的值,這是之前由jQuery創建的
HTML來改變它的量:
<div class="menuContainer">
<div class="foodListContainer">
<div class="row"></div>
</div>
<div class="buttonsContainer">
<button value="100,g.,12.6,2.6,68,355">Buckweat</button>
<button value="1,ps.,6.3,5.7,0.35,78.5">Egg</button>
<button value="1,sp.,2.8,3.2,4.7,58">Butter</button>
<button value="100,g.,12.6,2.6,68,355">Meat</button>
</div>
JS:
$(document).ready(function() {
//When user click a button
$(".buttonsContainer button").click(function() {
//catching the name of food
var choosenFood = $(this).text();
//catching the value of pressed button with info
//about this food and making an array with it
var value = $(this).val();
var arr = value.split(',');
//insert div's with info from array
$($.parseHTML(
'<div class="name">' + choosenFood + '</div><button class="up">+</button><div class="value">' + arr[0] + '</div><div class="unit">' + arr[1] + '</div><button class="down">-</button><div class="protein">' + arr[2] + '</div><div class="fat">' + arr[3] + '</div><div class="carbs">' + arr[4] + '</div><div class="kkal">' + arr[5] + '</div><br>')).appendTo(".row");
//trying to change value
$('.down').click(function() {
$(this).prev().prev(".value").html(function (i, val) {
return val * 1 - 1;
});
});
$('.up').click(function() {
$(this).next(".value").html(function (i, val) {
return val * 1 + 1;
});
});
});
的問題時,從那裏開始表中有2行和更多行。行數越多,+和 - 按鈕的更改值就越多。你最好看看這裏:https://jsfiddle.net/ts3n35bq/
我認爲,這是有一定的範圍問題。可能的,最關鍵的錯誤是從「appendTo」動作直接調用「up」和「down」動作,並且似乎這個函數在每一行都重複出現,直到結束。但是當我試圖從那裏刪除它們時,它們根本不工作。
我會很感激任何建議或幫助。謝謝!
非常感謝!它的工作,最後!我花了四天的時間在4分鐘內解決問題。我沒有辦法走。再次感謝!! –