0

我正在制作餐厅在线菜单,需要在客户向菜单中添加项目时显示总数。但是,我的总数只更新了 1 位小数。我正在尝试使用 toFixed(2) 但无法使其正常工作。

var banquetPrice = parseInt($(document).find(".menuChoice").val());
$(".menuChoice").change(function () {
updateTotal()
});
var total = (banquetPrice * numGuests) + (9.25 * numGuac) + (9.25 * numQuesa) + (9.25 * numNachos)

$("#total").html(total);
total.toFixed(2);

任何帮助将不胜感激!

4

2 回答 2

1

来了哥们..

var total = (12.35 * 5) + (9.25 * 1) + (9.25 * 1) + (9.25 * 1)

$("#total").html(total.toFixed(2));
label{
border-bottom : 2px solid green;
font-weight: 900;
font-size: 32px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<label id="total" ></label>
</div>

于 2017-03-08T19:05:12.070 回答
0

如上面评论中所述,您应该在更新元素total.toFixed(2)文本的同一行上调用。#total您当前丢弃返回值toFixed而不是使用它。使用性能更高的.text()而不是.html(),该行现在变为:

$("#total").text(total.toFixed(2))

演示:

$(".menuChoice").change(updateTotal)

updateTotal()

function updateTotal() {
  // Assuming that these variables are already
  // defined and set to meaningful values
  var numGuests = 1
  var numGuac = 1
  var numQuesa = 1
  var numNachos = 1
  
  var banquetPrice = +$(".menuChoice").val()
  var total = (banquetPrice * numGuests) + (9.25 * numGuac) + (9.25 * numQuesa) + (9.25 * numNachos)
  $("#total").text(total.toFixed(2))
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p>Menu Choice: <input class="menuChoice" value="0"/>
<p>Total: $<span id="total"></span></p>

于 2017-03-08T19:12:52.880 回答