Skip to content

Commit 0ac2519

Browse files
author
Web Dev Simplified
committed
Update From Video
1 parent bf3f3c8 commit 0ac2519

File tree

2 files changed

+51
-48
lines changed

2 files changed

+51
-48
lines changed

Introduction to JavaScript/Lesson 1/store.html

-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ <h2 class="section-header">CART</h2>
8383
<span class="cart-quantity cart-header cart-column">QUANTITY</span>
8484
</div>
8585
<div class="cart-items">
86-
8786
</div>
8887
<div class="cart-total">
8988
<strong class="cart-total-title">Total</strong>

Introduction to JavaScript/Lesson 1/store.js

+51-47
Original file line numberDiff line numberDiff line change
@@ -5,95 +5,99 @@ if (document.readyState == 'loading') {
55
}
66

77
function ready() {
8-
var shopItemButtons = document.getElementsByClassName('shop-item-button')
9-
for (var i = 0; i < shopItemButtons.length; i++) {
10-
shopItemButtons[i].addEventListener('click', addToCartClicked)
11-
}
12-
138
var removeCartItemButtons = document.getElementsByClassName('btn-danger')
149
for (var i = 0; i < removeCartItemButtons.length; i++) {
15-
removeCartItemButtons[i].addEventListener('click', removeCartItem)
10+
var button = removeCartItemButtons[i]
11+
button.addEventListener('click', removeCartItem)
1612
}
1713

18-
var cartQuantityInputs = document.getElementsByClassName('cart-quantity-input')
19-
for (var i = 0; i < cartQuantityInputs.length; i++) {
20-
cartQuantityInputs[i].addEventListener('change', quantityChanged)
14+
var quantityInputs = document.getElementsByClassName('cart-quantity-input')
15+
for (var i = 0; i < quantityInputs.length; i++) {
16+
var input = quantityInputs[i]
17+
input.addEventListener('change', quantityChanged)
18+
}
19+
20+
var addToCartButtons = document.getElementsByClassName('shop-item-button')
21+
for (var i = 0; i < addToCartButtons.length; i++) {
22+
var button = addToCartButtons[i]
23+
button.addEventListener('click', addToCartClicked)
2124
}
2225

2326
document.getElementsByClassName('btn-purchase')[0].addEventListener('click', purchaseClicked)
2427
}
2528

26-
function addToCartClicked(event) {
27-
var shopItemContainer = event.target.parentElement.parentElement
28-
var priceString = shopItemContainer.getElementsByClassName('shop-item-price')[0].innerText
29-
var itemName = shopItemContainer.getElementsByClassName('shop-item-title')[0].innerText
30-
var imageUrl = shopItemContainer.getElementsByClassName('shop-item-image')[0].src
31-
addItemToCart(itemName, imageUrl, priceString)
29+
function purchaseClicked() {
30+
alert('Thank you for your purchase')
31+
var cartItems = document.getElementsByClassName('cart-items')[0]
32+
while (cartItems.hasChildNodes()) {
33+
cartItems.removeChild(cartItems.firstChild)
34+
}
3235
updateCartTotal()
3336
}
3437

3538
function removeCartItem(event) {
36-
var buttonElement = event.target
37-
buttonElement.parentElement.parentElement.remove()
39+
var buttonClicked = event.target
40+
buttonClicked.parentElement.parentElement.remove()
3841
updateCartTotal()
3942
}
4043

4144
function quantityChanged(event) {
42-
var quantityInput = event.target
43-
if (isNaN(quantityInput.value) || quantityInput.value <= 0) {
44-
quantityInput.value = 1
45+
var input = event.target
46+
if (isNaN(input.value) || input.value <= 0) {
47+
input.value = 1
4548
}
4649
updateCartTotal()
4750
}
4851

49-
function purchaseClicked() {
50-
alert('Thank you for your purchase!')
51-
var cartItemContainer = document.getElementsByClassName('cart-items')[0]
52-
while(cartItemContainer.hasChildNodes()) {
53-
cartItemContainer.removeChild(cartItemContainer.firstChild)
54-
}
52+
function addToCartClicked(event) {
53+
var button = event.target
54+
var shopItem = button.parentElement.parentElement
55+
var title = shopItem.getElementsByClassName('shop-item-title')[0].innerText
56+
var price = shopItem.getElementsByClassName('shop-item-price')[0].innerText
57+
var imageSrc = shopItem.getElementsByClassName('shop-item-image')[0].src
58+
addItemToCart(title, price, imageSrc)
5559
updateCartTotal()
5660
}
5761

58-
function addItemToCart(itemName, imageUrl, priceString) {
59-
var cartItemContainer = document.getElementsByClassName('cart-items')[0]
60-
var cartItemNames = cartItemContainer.getElementsByClassName('cart-item-title')
62+
function addItemToCart(title, price, imageSrc) {
63+
var cartRow = document.createElement('div')
64+
cartRow.classList.add('cart-row')
65+
var cartItems = document.getElementsByClassName('cart-items')[0]
66+
var cartItemNames = cartItems.getElementsByClassName('cart-item-title')
6167
for (var i = 0; i < cartItemNames.length; i++) {
62-
if (cartItemNames[i].innerText == itemName) {
63-
alert('This item is already in your cart')
68+
if (cartItemNames[i].innerText == title) {
69+
alert('This item is already added to the cart')
6470
return
6571
}
6672
}
67-
var cartRow = document.createElement('div')
68-
cartRow.classList.add('cart-row')
69-
cartRow.innerHTML = `
73+
var cartRowContents = `
7074
<div class="cart-item cart-column">
71-
<img class="cart-item-image" src="${imageUrl}" width="100" height="100">
72-
<span class="cart-item-title">${itemName}</span>
75+
<img class="cart-item-image" src="${imageSrc}" width="100" height="100">
76+
<span class="cart-item-title">${title}</span>
7377
</div>
74-
<span class="cart-price cart-column">${priceString}</span>
78+
<span class="cart-price cart-column">${price}</span>
7579
<div class="cart-quantity cart-column">
76-
<input class="cart-quantity-input" min="1" type="number" value="1">
80+
<input class="cart-quantity-input" type="number" value="1">
7781
<button class="btn btn-danger" type="button">REMOVE</button>
78-
</div>
79-
`
80-
cartItemContainer.append(cartRow)
82+
</div>`
83+
cartRow.innerHTML = cartRowContents
84+
cartItems.append(cartRow)
8185
cartRow.getElementsByClassName('btn-danger')[0].addEventListener('click', removeCartItem)
8286
cartRow.getElementsByClassName('cart-quantity-input')[0].addEventListener('change', quantityChanged)
8387
}
8488

8589
function updateCartTotal() {
86-
var cartRows = document.getElementsByClassName('cart-row')
90+
var cartItemContainer = document.getElementsByClassName('cart-items')[0]
91+
var cartRows = cartItemContainer.getElementsByClassName('cart-row')
8792
var total = 0
8893
for (var i = 0; i < cartRows.length; i++) {
8994
var cartRow = cartRows[i]
9095
var priceElement = cartRow.getElementsByClassName('cart-price')[0]
9196
var quantityElement = cartRow.getElementsByClassName('cart-quantity-input')[0]
92-
if (priceElement == null || quantityElement == null) continue
9397
var price = parseFloat(priceElement.innerText.replace('$', ''))
94-
var quantity = parseInt(quantityElement.value)
95-
total += price * quantity
98+
var quantity = quantityElement.value
99+
total = total + (price * quantity)
96100
}
97-
98-
document.getElementsByClassName('cart-total-price')[0].innerText = '$' + Math.round(total * 100) / 100
101+
total = Math.round(total * 100) / 100
102+
document.getElementsByClassName('cart-total-price')[0].innerText = '$' + total
99103
}

0 commit comments

Comments
 (0)