@freeman0204

Как сравнить 2 списка по data и по клику при совпадении удалять li которые совпадают?

Мне нужно сравнивать data, и проходится по списку через each или сравнивать 2 массива?
Клик можно делать как по первому списку так и по второму.
Код
  • Вопрос задан
  • 65 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Смотрим data-атрибут кликнутого элемента, находим все элементы с таким же значением:

document.addEventListener('click', e => {
  const number = e.target.closest('[data-number]')?.dataset.number;
  if (number) {
    document.querySelectorAll(`[data-number="${number}"]`).forEach(n => n.remove());
  }
});

Или, есть вариант обойтись и без data-атрибута - определяем индекс кликнутого, обходим списки, дёргаем вложенные элементы с таким же индексом:

const lists = document.querySelectorAll('.list');
lists.forEach(n => n.addEventListener('click', onClick));

function onClick(e) {
  const i = Array.prototype.indexOf.call(this.children, e.target.closest('li'));
  if (i !== -1) {
    lists.forEach(n => n.removeChild(n.children[i]));
  }
}
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега JavaScript
♬♬
По клику получать элемент, его значение, его родительский список.
Определить второй список. В нём найти элемент с таким же значением:

Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы