【问题标题】:How to make JavaScript basic shopping cart amount calculator如何制作 JavaScript 基本的购物车金额计算器
【发布时间】:2017-12-24 21:09:55
【问题描述】:

 <script>
  var itemquantity, appleamount, appletotalamount, bananaamount, bananatotalamount, gtotalfruits, gtotalfruitss

  function apple() {
    var itemquantity = document.getElementById("apple");
    var appleamount = document.getElementById("appletotal");
    var appletotalamount = itemquantity.value * 50;
    appleamount.value = appletotalamount;
  }

  function banana() {
    var itemquantity = document.getElementById("banana");
    var bananaamount = document.getElementById("bananatotal");
    var bananatotalamount = itemquantity.value * 30;
    bananaamount.value = bananatotalamount;
  }

  function grandtotalfruits() {
    var gtotalfruits = document.getElementById("grandtotalfruitss");
    var gtotalfruitss = appletotalamount + bananatotalamount;
    gtotalfruits.value = gtotalfruitss;
  }
</script>

<div class="left">
  <p class="fruit11">Apples - <input type="number" id="apple" class="shoppinginput" onChange="apple()" onchange="grandtotalfruits"> Rs.50/Kg</p>
  <p class="fruit12">Total amount = Rs.<output id="appletotal"></output></p>
</div>
<div class="left">
  <p class="fruit11">Bananas - <input type="number" id="banana" class="shoppinginput" onChange="banana()" onchange="grandtotalfruits"> Rs.30/Kg</p>
  <p class="fruit12">Total amount = Rs.<output id="bananatotal"></output></p>
</div>

<div class="grandtotal">
  <p class="fruit13">Grand total = Rs.<output id="grandtotalfruitss"></output></p>
</div>`

先输入 type="number" value1 * 100 显示在输出框中,然后输入 type="number" value2 * 100 显示在第二个输出框中,然后将 value1 和 value2 相加并显示在输出框 3 中。我正在使用 JavaScript 并且是初学者。

你在阅读问题时能看到设计吗?

它适用于 output1 和 output2,但无法为第三个输出框中的 output1 和 output2 的总输出创建正确的方法或函数。

【问题讨论】:

  • '你能在阅读问题时看到设计吗?'不,我不能——你应该发布你的代码。
  • 您具体要问什么,因为目前还不清楚
  • 你能展示你的输入和输出示例吗?
  • 是的.......在这里..一半工作我需要添加苹果和香蕉价值并显示总计。

标签: javascript cart shopping-cart


【解决方案1】:

基本上,@dev8989 所说的。每次用户更改“apples”值时,您都会更改“apples quantity”(“bananas”也是如此)。如果更新了任何苹果/香蕉,您还必须更新“总计”。这就是@dev8989 的建议:

var $apples = document.getElementById('apples')
var $applesTotal = document.getElementById('apples-total')
var $bananas = document.getElementById('bananas')
var $bananasTotal = document.getElementById('bananas-total')
var $grandTotal = document.getElementById('grand-total')

function apple (v) { return 50 * v }
function banana (v) { return 30 * v}

$apples.addEventListener('change', function() {
  $applesTotal.textContent = apple($apples.value)
  $grandTotal.textContent = apple($apples.value) + banana($bananas.value)
})
$bananas.addEventListener('change', function() {
  $bananasTotal.textContent = banana($bananas.value)
  $grandTotal.textContent = apple($apples.value) + banana($bananas.value)
})
<input type="number" id="apples">
<p>Apples total: <span id="apples-total">0</span></p>
<input type="number" id="bananas">
<p>Bananas total: <span id="bananas-total">0</span></p>
<p>Grand total: <span id="grand-total">0</span></p>

编辑:这是修复了错误的原始代码。请参阅我对为什么这是必要的评论:

var itemquantity, appleamount, appletotalamount = 0, bananaamount, bananatotalamount = 0, gtotalfruits, gtotalfruitss

function apple() {
  var itemquantity = document.getElementById("apple");
  var appleamount = document.getElementById("appletotal");
  appletotalamount = itemquantity.value * 50;
  appleamount.value = appletotalamount;
  grandtotalfruits();
}

function banana() {
  var itemquantity = document.getElementById("banana");
  var bananaamount = document.getElementById("bananatotal");
  bananatotalamount = itemquantity.value * 30;
  bananaamount.value = bananatotalamount;
  grandtotalfruits();
}

function grandtotalfruits() {
  var gtotalfruits = document.getElementById("grandtotalfruitss");
  var gtotalfruitss = appletotalamount + bananatotalamount;
  gtotalfruits.value = gtotalfruitss;
}
<div class="left">
  <p class="fruit11">Apples - <input type="number" id="apple" class="shoppinginput" onChange="apple()" onchange="grandtotalfruits"> Rs.50/Kg</p>
  <p class="fruit12">Total amount = Rs.<output id="appletotal"></output></p>
</div>
<div class="left">
  <p class="fruit11">Bananas - <input type="number" id="banana" class="shoppinginput" onChange="banana()" onchange="grandtotalfruits"> Rs.30/Kg</p>
  <p class="fruit12">Total amount = Rs.<output id="bananatotal"></output></p>
</div>

<div class="grandtotal">
  <p class="fruit13">Grand total = Rs.<output id="grandtotalfruitss"></output></p>

【讨论】:

  • 程序在您的 sn-p 中运行后,我笑了。但你看到我写的编程类型。你的编码模式我试图适应我的模式。谢谢..让我们看看
  • 只是想说..我开始学习 JavaScript 才 3 天。在我头顶上……对不起
  • 好吧:首先你要在apple()banana() 中调用grandtotalfruits(),就像@dev8989 建议的那样。但是:您的 grandtotalfruits 访问“全局”变量 appletotalamountbananatotalamount,它们实际上从未设置为任何内容,因为您在 apple/banana 中设置的变量是这些范围内的新变量职能。长话短说,第二件事你必须在苹果/香蕉中删除var。我会编辑我的帖子。
  • thnx ..现在修复它...我在主要的总输出中显示了grandtotalfruits,它将显示grandtotalfruits grandtotalvegs grandtotalnonveg grandtotalsnacks。这从 w3school 上的一些小的输入 js 示例开始......然后到达这里,..谢谢你......:)
  • 太棒了。如果我的回答帮助您解决了您的问题,请将其标记为已接受的答案,以便其他人在遇到类似问题时找到有效的答案。圣诞快乐!
【解决方案2】:

apple()banana() 函数中添加grandtotalfruit()

 function apple() {
        var itemquantity = document.getElementById("apple");
        var appleamount = document.getElementById("appletotal");
        var appletotalamount = itemquantity.value * 50;
        appleamount.value = appletotalamount;
        grandtotalfruit();
      }

      function banana() {
        var itemquantity = document.getElementById("banana");
        var bananaamount = document.getElementById("bananatotal");
        var bananatotalamount = itemquantity.value * 30;
        bananaamount.value = bananatotalamount;
        grandtotalfruit();
      }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 2022-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多