@HitGirl

Как найти группу элементов по dataset?

Здравствуйте!
У меня на странице есть множество элементов с атрибутом data-value.
Например: data-value="11" или data-value="171";
Также есть массив: data_codes = [ 11, 16, 129, ...].
Подскажите, пожалуйста, есть ли более эффективный (быстрый) способ получения элементов (чей data-value равен одному из элементов массива) чем перебор data_codes и вызов для каждого элемента:
document.querySelector("[data-value = " +data_codes[i]+"]")
  • Вопрос задан
  • 1121 просмотр
Решения вопроса 2
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
document.querySelectorAll(`[data-value = "11"], [data-value = "171"], ...`)

Ещё можно ограничить поиск конкретной частью страницы
const container = document.body.querySelector('#conteiner')
container.querySelectorAll(`[data-value = "11"], [data-value = "171"], ...`)
Ответ написан
Комментировать
@Absolute138
Подскажите, пожалуйста, есть ли более эффективный (быстрый) способ получения элементов (чей data-value равен одному из элементов массива) чем перебор data_codes и вызов для каждого элемента:
Более эффективный - не уверен. Есть просто другой способ:
let data_codes = [ 11, 16, 129];
let dataArr = data_codes.map(v=>`[data-value="${v}"]`);

document.querySelectorAll(dataArr).forEach(v=>{
  console.log(v.dataset.value)
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы