Antonchik
@Antonchik
Программирую на HTML

Отобрать элементы по data атрибуту?

Здравствуйте. Есть элемент допустим <p data-value="слово1 слов2 слово3 слово4"></p> у меня есть строка к примеру "слово1 слово3" мне нужно отобрать все элементы у которых в data-value есть "слово1" и "слово3" есть ли готовые решения для такого? Или какой-то хитрый алгоритм?
  • Вопрос задан
  • 47 просмотров
Решения вопроса 1
Exploding
@Exploding
wtf?
Так наверно?
el = $("[data-value~='слово1'][data-value~='слово3']");
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Immortal_pony
@Immortal_pony Куратор тега JavaScript
Например так:
function getElementsByValues(values) {
    var allElements = $('[data-value]');
    var filtered = [];

    allElements.each(function() { 
        var element = $(this);
        var elementValues = element.data('value').split(" ");
        var elementFiltered = false;

        values.forEach(function(value) {         
             if (elementValues.indexOf(value) !== -1 && !elementFiltered) {
                 filtered.push(element);
                 elementFiltered = true;
             }
        });
    });
    
    return filtered;
}

var str = 'слово1 слово3';
var values = str.split(' ');
var elements = getElementsByValues(values);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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