Как удалить клонированную строку

Пытаюсь сделать корзину. Я создал таблицу, содержащую продукты (каждая строка содержит товар, его цену и кнопку для его выбора). С js, когда вы нажимаете кнопку элемента, он клонирует всю строку этого элемента и помещает клон во вторую таблицу (которая является корзиной для покупок). Я хотел бы удалить клонированную строку второй таблицы при нажатии на ее кнопку. Речь идет не об удалении родителя DOM, потому что родителем кнопки является td, а не весь tr, который я хотел бы удалить.

let basket = document.getElementById("products_cart")

let buttons = document.querySelectorAll('.item_button');

for (button of buttons) {
  button.addEventListener('click', cloneLine);
}

function cloneLine(e) {
  let td = e.target.parentNode;
  let tr = td.parentNode;
  let clone = tr.cloneNode(true);
  basket.appendChild(clone);
  clone.querySelector('.item_button').textContent = "-";
}
<h1>CHOOSE</h1>

<table id = "starters">
  <tr>
    <th>PRODUCT</th>
    <th>PRICE</th>
    <th>ADD TO CART</th>
  </tr>
  <tr>
    <td>Cherry</td>
    <td>6</td>
    <td><button class = "item_button">+</button></td>
  </tr>
  <tr>
    <td>Peach</td>
    <td>8</td>
    <td><button class = "item_button">+</button></td>
  </tr>
  <tr>
    <td>Strawberry</td>
    <td>12</td>
    <td><button class = "item_button">+</button></td>
  </tr>

</table>

<h1>YOUR CHOICE</h1>

<table id = "products_cart">

</table>

Вы не можете удалить родителя родителя?

Nordii 30.05.2019 23:36

Возможный дубликат jquery удалить строку при нажатии не работает?

Rafael Herscovici 30.05.2019 23:39

@Nordii Я пытался, но это не сработало. Но я не очень уверен в своих знаниях синтаксиса

hugo 30.05.2019 23:50
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

let basket = document.getElementById("products_cart")

let buttons = document.querySelectorAll('.item_button');

for (button of buttons) {
  button.addEventListener('click', cloneLine);
}

function cloneLine(e) {
  let td = e.target.parentNode;
  let tr = td.parentNode;
  let clone = tr.cloneNode(true);
  basket.appendChild(clone);
  clone.querySelector('.item_button').textContent = "-";
  clone.querySelector('.item_button').addEventListener("click", function(){    
    basket.removeChild(clone);
  });
}
<h1>CHOOSE</h1>

<table id = "starters">
  <tr>
    <th>PRODUCT</th>
    <th>PRICE</th>
    <th>ADD TO CART</th>
  </tr>
  <tr>
    <td>Cherry</td>
    <td>6</td>
    <td><button class = "item_button">+</button></td>
  </tr>
  <tr>
    <td>Peach</td>
    <td>8</td>
    <td><button class = "item_button">+</button></td>
  </tr>
  <tr>
    <td>Strawberry</td>
    <td>12</td>
    <td><button class = "item_button">+</button></td>
  </tr>

</table>

<h1>YOUR CHOICE</h1>

<table id = "products_cart">

</table>

Другие вопросы по теме