Задать вопрос
serejatoje
@serejatoje

Как отфильтровать элементы li по объекту?

Есть объект, например:

items = {
  TSVET: 'темно-серый',
  MATERIAL: 'гранит',
}

И есть ul блок с элементами, в которых класс совпадает с ключами объекта. Ну и значения тоже.

651694c937f4d321498682.png
Задача состоит в том, чтобы получить элементы LI, в которых элементы P совпадают со свойствами объекта.
  • Вопрос задан
  • 197 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const li = Array.prototype.filter.call(
  document.querySelector('ul').children,
  function(n) {
    return this.every(([ k, v ]) => v === n.querySelector(`.${k}`).innerText);
  },
  Object.entries(items)
);

или

const li = [];

COLLECT_LI:
for (const n of document.querySelectorAll('li')) {
  for (const k in items) {
    if (Object.hasOwn(items, k) && items[k] !== n.querySelector('.' + k).textContent) {
      continue COLLECT_LI;
    }
  }

  li.push(n);
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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