-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstore.js
More file actions
59 lines (50 loc) · 1.61 KB
/
store.js
File metadata and controls
59 lines (50 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
if (document.readyState == "loading") {
document.addEventListener("DOMContentLoaded", ready);
} else {
ready();
}
function ready() {
let removeCartItemButtons = document.getElementsByClassName("btn-danger");
for (i in removeCartItemButtons) {
let button = removeCartItemButtons[i];
button.addEventListener("click", removeCartItem);
}
let quantityInputs = document.getElementsByClassName("cart-quantity-input");
for (i in quantityInputs) {
let input = quantityInputs[i];
input.addEventListener('change', quantityChanged);
}
}
function removeCartItem(event) {
let buttonClicked = event.target;
buttonClicked.parentElement.parentElement.remove();
updateCartTotal();
}
function quantityChanged(event) {
let input = event.target;
if (isNaN(input.value) || input.value <= 0) {
input.value = 1;
}
updateCartTotal();
}
function updateCartTotal() {
let cartItemContainer =
document.getElementsByClassName(
"cart-items"
)[0]; /*Como devuelve un array, con el [0] nos quedamos con el primer de todos */
let cartRows = cartItemContainer.getElementsByClassName("cart-row");
let total = 0;
for (item in cartRows) {
let cartRow = cartRows[item];
let priceElement = cartRow.getElementsByClassName("cart-price")[0];
let quantityElement = cartRow.getElementsByClassName(
"cart-quantity-input"
)[0];
let price = parseFloat(priceElement.innerText.replace("$", ""));
let quantity = quantityElement.value;
total = total + price * quantity;
document.getElementsByClassName("cart-total-price")[0].innerText =
"$" + total;
}
}
// bla bla bla