За последние 24 часа нас посетил 22351 программист и 996 роботов. Сейчас ищут 664 программиста ...

Выбрать только уникальные элементы по значению атрибута

Тема в разделе "JavaScript и AJAX", создана пользователем JonyFront, 10 ноя 2021.

  1. JonyFront

    JonyFront Активный пользователь

    С нами с:
    5 июн 2016
    Сообщения:
    143
    Симпатии:
    1
    Добрый день,
    Есть код который копирует элементы из одного места в другое соблюдая сортировку по значению атрибута, подписал его комментами
    Код (Javascript):
    1. var append_item = $('.items').find('.item').clone(), item = $('.item-list');
    2.   append_item.sort(function(a, b) {
    3.   return a.getAttribute('data-xsort') > b.getAttribute('data-xsort'); // сортируем по значению атрибута
    4.   });
    5.   item.find('.block').remove(); // удаляем изначально добавленные элементы
    6.   item.append(append_item);// копируем из append_item в item элементы
    7.   item.find('.item').each(function (index, value) {
    8.   $(this).siblings("[data-xsort='"+$(this).attr('data-xsort') +"']").remove(); // удаляем дубли элементов с одинаковым значением data-xsort
    9.   $(this).wrap('<div class="block"></div>');
    10.   });
    Подскажите, пожалуйста, как перед item.append(append_item); добавить фильтрацию, чтобы на выходе было только 3 элемента в копирование, в нужном порядке и без дублей?
    Сейчас я это решаю этой строкой $(this).siblings("[data-xsort='"+$(this).attr('data-xsort') +"']").remove(); и css
    .block:not:)nth-child(-n + 3)) {
    display:none;
    }
    Но не нравится что есть лишние элементы при копировании и их нужно скрывать на css...
    Заранее спасибо!