I have a beginning javascript project trying to build small projects. I want to add list delete button but ı don't know how can I add a delete button for each line. I have already created a delete button for deleting list items but it only appears for last added list item. How can I make it appear for every list item ?
'use strict';
const rootEl = document.getElementById('root');
const form = document.createElement('form');
form.setAttribute('data-id', 'purchase-form');
rootEl.appendChild(form);
const message = document.createElement('div');
message.setAttribute('data-id', 'message');
form.appendChild(message);
const inputName = document.createElement('input');
inputName.setAttribute('data-input', 'name');
form.appendChild(inputName);
const inputPrice = document.createElement('input');
inputPrice.setAttribute('data-input', 'price');
inputPrice.setAttribute('type', 'number');
form.appendChild(inputPrice);
const buttonSubmit = document.createElement('button');
buttonSubmit.setAttribute('data-action', 'add');
buttonSubmit.textContent = 'Добавить';
form.appendChild(buttonSubmit);
const listPurchases = document.createElement('ul');
listPurchases.setAttribute('data-id', 'purchases-list');
rootEl.appendChild(listPurchases);
const div = document.createElement('div');
div.textContent = 'Самая дорогая покупка: ';
rootEl.appendChild(div);
const span = document.createElement('span');
span.setAttribute('data-id', 'most-expensive');
span.textContent = 'нет покупок';
div.appendChild(span);
const deleteButton = document.createElement('button');
deleteButton.setAttribute('data-action', 'remove');
deleteButton.setAttribute('type', 'button');
deleteButton.textContent = 'Удалить';
let nextId = 1;
const purchases = [];
let cashback = 0.005;
const purchaseForm = rootEl.querySelector('[data-id="purchase-form"]');
const nameInput = purchaseForm.querySelector('[data-input="name"]');
const priceInput = purchaseForm.querySelector('[data-input="price"]');
const button = purchaseForm.querySelector('[data-action="add"]');
const purchasesList = document.querySelector('[data-id="purchases-list"]');
const mostExpensive = rootEl.querySelector('[data-id="most-expensive"]');
const messageEl = rootEl.querySelector('[data-id="message"]');
const Buttondelete = rootEl.querySelector('[data-action="remove"]');
nameInput.focus();
purchaseForm.onsubmit = (evt) => {
evt.preventDefault();
const name = nameInput.value.trim();
const price = Number(priceInput.value);
// cashback = price > 1 ? 0.005 : 0;
if (name !== '' && price !== null && price > 0) {
messageEl.textContent = '';
purchases.unshift({
id: nextId++,
name: name,
price: price,
});
nameInput.focus();
createElement(name);
newPurchase.appendChild(deleteButton);
purchaseForm.reset();
mostExpensive.textContent = `${name} на сумму ${
calculatemostExpensive().price
} с.`;
}
if (name === '') {
messageEl.textContent = '"Значение поля не может быть пустым"';
nameInput.focus();
} else if (!price) {
messageEl.textContent = '"Значение поля не может быть пустым"';
priceInput.focus();
} else if (price < 0) {
messageEl.textContent = '"Значение поля не может быть пустым"';
priceInput.focus();
}
// else if ([price === '']) {
// messageEl.textContent = '"Значение поля не может быть пустым"';
// priceInput.focus();
// }
if (price > 0 && name !== '') {
messageEl.textContent = '';
}
};
let newPurchase;
function createElement(ci) {
newPurchase = document.createElement('li');
newPurchase.setAttribute('data-purchase-id', nextId - 1);
newPurchase.textContent = `${ci} на сумму ${priceInput.value} с. `;
purchasesList.prepend(newPurchase);
purchasesList.insertBefore(newPurchase, newPurchase);
deleteButton.onclick = (evt) => {
evt.preventDefault();
debugger;
newPurchase.parentNode.removeChild(newPurchase);
};
}
let max;
function calculatemostExpensive() {
debugger;
return (max = purchases.reduce(
(prev, current) => (prev.price > current.price ? prev : current),
1
));
}
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title></title>
<link rel="stylesheet" href="./css/styles.css" />
</head>
<body>
<noscript
>Необходимо включить поддержку JavaScript в вашем браузере.</noscript
>
<div id="root"></div>
<script src="./js/app.js"></script>
</body>
</html>