git: https://github.com/leeyulgok/3-Day-1
<div class="menu-container">
<div class="menu">
<h1 class="menu-title">치킨</h1>
<p class="menu-price">20000</p>
<button type="button" class="add-to-cart">장바구니에 추가</button>
</div>
<div class="menu">
<h1 class="menu-title">피자</h1>
<p class="menu-price">23000</p>
<button type="button" class="add-to-cart">장바구니에 추가</button>
</div>
</div>
<div class="cart">
<h1 class="cart-title">장바구니</h1>
<p id="cart-items"></p>
</div>
const addToCartButtons = document.querySelectorAll(".add-to-cart");
const cartItemsElement = document.getElementById("cart-items");
const cartItems = [];
const addToCart = event => {
const menuElement = event.target.parentElement;
const menuTitle = menuElement.querySelector(".menu-title").innerText;
const menuPrice = menuElement.querySelector(".menu-price").innerText;
const item = `${menuTitle} - ${menuPrice}`;
cartItems.push(item);
updateCartItems();
}
const updateCartItems = () => {
cartItemsElement.innerHTML = "";
for (let i = 0; i < cartItems.length; i++) {
const cartItemElement = document.createElement("div");
cartItemElement.textContent = cartItems[i];
cartItemsElement.appendChild(cartItemElement);
}
}
addToCartButtons.forEach((button) => {
button.addEventListener("click", addToCart);
});
1. 첫 3줄
첫 3줄은, 버튼과 배열을 보여주는 p태그, 그리고 장바구니 빈 배열이다.
2. 함수 addToCart
이 함수는 배열에 값을 넣는 함수다. 함수의 첫 3줄은 버튼을 눌렀을 때, 누른 div 자체를 가져온다. 그래서 그 안에서 이름과 가격을 가져오고, 이를 item이라는 상수로 만들어 카트에 넣고 updateCartItems()를 부른다.
3. 함수 updateCartItems
이 함수는 반복문을 통해 값을 보여주는 함수다. 첫 번째 줄은 가장 처음 정의한 cartItemsElement를 불러 값을 정의하고, 다음에 반복문을 통해 정의한 값에 새로운 div를 만들고 위에서 정의한 장바구니에 appendChild() 메서드를 웹 페이지에 보여준다.
4. 이벤트 핸들러
마지막은 이벤트 핸들러로 button이 클릭되면 정의한 함수들이 작동될 수 있도록 연결을 해준다.
실습을 최대한 잘 이용하기.
본 후기는 유데미-스나이퍼팩토리 10주 완성 프로젝트캠프 학습 일지 후기로 작성 되었습니다.
#프로젝트캠프 #프로젝트캠프후기 #유데미 #스나이퍼팩토리 #웅진씽크빅 #인사이드아웃 #IT개발캠프 #개발자부트캠프 #리액트 #react #부트캠프 #리액트캠프