Top.Mail.Ru
Ответы
Аватар пользователя
6лет
Изменено
Аватар пользователя
Аватар пользователя
Программирование
+1

Как сохранить положение option в списке, чтобы вернуть его при нажатии на кнопку?

У меня есть готовый код, но он возвращает выбранные позиции в конец списка.
Ссылка тут: https://jsfiddle.net/0j87tz4v/

Есть ли способ сохранить позиции, чтобы вернуть их в обоих select(ах), так чтобы список в обоих колонках был по порядку.

На самом деле, я пытался сделать что-то вроде:
$(document).ready(function(){
var $filter = $(".filter");
$filter.children().detach().sort(function(a, b) {
return $(a).text().localeCompare($(b).text());
}).appendTo($filter);
});

Но фильтрация списка по алфавиту, не работает ровно так, как мне нужно. Сначала происходит фильтрация, а уже потом переносится из списка в список. Из-за этого сбивается положение элементов в списке, и переносится совсем не то, что я выбрал.

Есть ли какой-то хороший способ сделать это?

По дате
По рейтингу
Аватар пользователя
Новичок
6лет

Ну главная проблема в том, чтобы определить место, куда надо поставить опцию... решил собрать внутренние тексты опций в отдельный массив, сначала отсортировать его, а оттуда уже достать номер нужной опции - - https://jsfiddle.net/OPTlMUS/2uoav46y/ Чуть повырезал код... я тогда затупил и забыл, что если append - то элемент и так переносится куда указали, не нужно клонировать, а предыдущий удалять)

P.s. сортировка идет именно по тексту, как в словаре... т. е. "Текст 5" будет больше чем "Текст7"

Если нужно будет независимо от текста, по номерам, тогда через регулярку, достать оттуда число... a.match(/\d+/)[0] < b.match(/\d+/)[0]