SmthTo
@SmthTo
Все перепёлки мира будут оплакивать мою смерть.

Как произвести динамическое копирование/удаления текста выбранных option из multiple select в div в случае, если их несколько?

Здравствуйте!

К сожалению, я очень хреновый знаток JS, возникла необходимость динамического копирования текста выбранных option из select'ов в div. Я написал косой код... и все бы работало хорошо, но проблема моего подхода заключается в том, что я создаю один и тот же массив для всех select'ов, из-за чего контент во всех фильтрах копируется одинаковый.

Я понимаю, что я хреновый разработчик. Я понимаю, что нативный multiple select на ПК не очень удобен, но эти фильтры предназначаются для мобильных, поэтому select'ы на телефонах я буду скрывать визуально и абсолютно позиционировать, чтобы они были доступны по клику на блок. Появляется нативное окно выбора опций, что на телефонах вполне удобно.

Для понимания происходящего в примере я визуально показываю эти select'ы.
Покликайте в примере по опциям нескольких фильтров— вы сразу поймете проблему (в блок справа от названия копируются все выбранные опции по всем фильтрам):


P. S. В реальном проекте все остальные алгоритмы (очищение выбранного фильтра, сброс и AJAX-подгрузка кол-ва товаров уже работают, кроме вот этой визуальной штуки.
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
$('.s-mobile-filter-type-select__select').on('change', function() {
  $(this)
    .closest('.s-mobile-filter-type-select')
    .find('.s-mobile-filter-type-select__selected-options-list-content')
    .text($('option:selected', this).get().map(n => $(n).text()).join(', '));
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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