Как добавить налог и предложения к продажной цене в JavaScript - PullRequest
0 голосов
/ 12 июня 2019

Мой проект - создать сайт, который продает ручки, карандаши и ластики. Мне нужна помощь в расчете налога и добавлении сделок и стоимости доставки. Если жить в Саскачеване нет стоимости доставки, налог составляет 5%, и если они тратят не менее 30 долларов, они получают 5 долларов после уплаты налогов. Если они живут в Альберте, стоимость доставки составляет 2 доллара, налог составляет 5%, и сделок нет. Если они живут в Манитобе, стоимость доставки составляет 2 доллара, налог составляет 6%, и сделок нет.

Я пытался делать заявления, но ничего не показывалось. Как я могу отладить это?

function updateCartTotal() {
  var cartItemContainer = document.getElementsByClassName('cart-items')[0]
  var cartRows = cartItemContainer.getElementsByClassName('cart-row')
  var order_total = 0

  for (var i = 0; i < cartRows.length; i++) {
    var cartRow = cartRows[i]
    var priceElement = cartRow.getElementsByClassName('cart-price')[0]
    var quantityElement = cartRow.getElementsByClassName('cart-quantity-input')[0]
    var price = parseFloat(priceElement.innerText.replace('$', ''))
    var quantity = quantityElement.value
    order_total = order_total + (price * quantity)
  }

  order_total = Math.round(order_total * 100) / 100
  document.getElementsByClassName('cart-total-price')[0].innerText = '$' + order_total

}
<select id="province">
  <option value="saskatchewan">Saskatchewan</option>
  <option value="alberta">Alberta</option>
  <option value="manitoba">Manitoba</option>
</select>

Я ожидаю, что это покажет все вместе

1 Ответ

1 голос
/ 12 июня 2019

Я вижу, вы задаете концептуальный вопрос.

Я бы подошел к этому, добавив атрибуты данных в выпадающий список. Затем захватите значения с помощью простой функции выбора изменений и интегрируйте ее в уравнение цены.

Вы можете прочитать об атрибутах данных здесь: https://www.w3schools.com/tags/att_global_data.asp и https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes

1) Добавить атрибуты данных

<select id="province">
  <option value="saskatchewan" data-shipping-cost="0" data-tax="0.05" data-deal-limiter="30" data-deal-coupon="5'>Saskatchewan</option>
  ...
</select>

2) Получение выбранных значений (обратите внимание на шаблон доступа camelCase для атрибута данных)

document.getElementById("province").addEventListener("change", function() {

    const select = document.getElementById("province"),
          selectedProvince = select.options[select.selectedIndex],
          shippingCost = selectedProvince.dataset.shippingCost ,
          tax = selectedProvince.dataset.tax,
          dealLimiter = selectedProvince.dataset.dealLimiter,
          dealCoupon = selectedProvince.dataset.dealCoupon;

});

3) Интеграция в ваше уравнение

Вы можете сделать эту часть самостоятельно; Я учу рыбалке, я не даю рыбу. (Подсказка: содержит оператор if).

...