Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.03.2016, 02:07
Новичок на форуме
Отправить личное сообщение для nihaha Посмотреть профиль Найти все сообщения от nihaha
 
Регистрация: 10.03.2016
Сообщений: 6

Фильтрация и сортировка
Добрый вечер. Столкнулся со сложностью во время сортировки.
У меня есть несколько блоков, которые я сортирую от большего к меньшему и наоборот. Сортирую как числа и все работает замечательно. Однако, среди блоков есть такие, где числовых значений нет, т.е. поле, по которому я сортирую, пустое. Эти блоки также участвуют в сортировке, приравниваясь по значению к нулю.
Моя задача - исключить такие блоки из сортировки, но не удалять их вовсе. Если я фильрую, а потом сортирую, то эти "пустые" блоки пропадают из DOM. Подскажите, пожалуйста, ход мысли, что сделать, чтоб блоки просто оставались в конце списка, не участвуя в сртировке.

Вот пример сортироки, нужно чтоб оранжевый блок не участвовал в сортировке и не удалялся - https://jsfiddle.net/ptL6jugn/2/

Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 10.03.2016, 02:11
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

nihaha,
Диапазон возможных числовых значений каков ?
Ответить с цитированием
  #3 (permalink)  
Старый 10.03.2016, 02:14
Новичок на форуме
Отправить личное сообщение для nihaha Посмотреть профиль Найти все сообщения от nihaha
 
Регистрация: 10.03.2016
Сообщений: 6

Все больше нуля, в пределах 100000
Ответить с цитированием
  #4 (permalink)  
Старый 10.03.2016, 02:19
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Вариант:
var divs = $("div.column").find("div.value").not(":empty").parents("div.column");
Ответить с цитированием
  #5 (permalink)  
Старый 10.03.2016, 02:24
Новичок на форуме
Отправить личное сообщение для nihaha Посмотреть профиль Найти все сообщения от nihaha
 
Регистрация: 10.03.2016
Сообщений: 6

Тут, по сути, происходит то же самое, что и в моем коде. Да, выборка идет по непустым значениям, но пустой блок все так же оказывается то в начале, то в конце дерева.
Как бы его так закрепить в конце, что ли...
Ответить с цитированием
  #6 (permalink)  
Старый 10.03.2016, 02:27
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

nihaha,
Дык при таком задании массива объектов пустые вроде как вообще исключены из последущей сортировки ?
Можно наоборот, найти пустые и переставить сначало такие блоки в самый конец
var emptys = $("div.column").find("div.value:empty").parents("div.column");

(можно вообще при клике кнопок сортировки, - пустые сразу изъять(emptys = emptys.remove()) со страницы и вставить их в конец по окончании сортировки

Последний раз редактировалось Deff, 10.03.2016 в 02:37.
Ответить с цитированием
  #7 (permalink)  
Старый 10.03.2016, 02:34
Новичок на форуме
Отправить личное сообщение для nihaha Посмотреть профиль Найти все сообщения от nihaha
 
Регистрация: 10.03.2016
Сообщений: 6

Да вот может и исключаются объекты, но остальные сортируются вокруг... я хз чего так.
Не совсем понятна Ваша идея с emptys. Каким образом можно из переставить их в конец?
Что-то типа
$('.wrapper').append(emptys)?
Ответить с цитированием
  #8 (permalink)  
Старый 10.03.2016, 02:39
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Deff
(можно вообще при клике кнопок сортировки, - пустые сразу изъять(emptys = emptys.remove()) со страницы и вставить их в конец по окончании сортировки
Так к примеру
Потом, после сортировки вставить emptys.insertAfter("div.column:last")
Ответить с цитированием
  #9 (permalink)  
Старый 10.03.2016, 02:53
Новичок на форуме
Отправить личное сообщение для nihaha Посмотреть профиль Найти все сообщения от nihaha
 
Регистрация: 10.03.2016
Сообщений: 6

То ли лыжи не едут... но если дописать после объявления emptys console.log(emptys), то получаем пустой массив jQuery ( )
Не доверяю я что-то :empty
Ответить с цитированием
  #10 (permalink)  
Старый 10.03.2016, 03:17
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

nihaha,
У Вас там пробелы и пустая строка потому - не пустая (не :empty)
<div class="value">
               </div>

Тады нун искать div.value без цифр по each с регуляркой или $.trim()
Либо сразу проставить в HTML для пустых так:
<div class="value"></div>

Последний раз редактировалось Deff, 10.03.2016 в 03:54.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка DIV на "чистом" JavaScript Feuerman063 Элементы интерфейса 31 21.10.2015 13:03
Говнокод)) Сортировка пузырьком. Lorines Ваши сайты и скрипты 3 03.10.2013 01:23
Сортировка и фильтрация json jQuery amt779 jQuery 4 28.07.2011 12:53
Сортировка и фильтрация в селекторе amt779 jQuery 1 08.07.2011 03:09
Сортировка числовых данных в таблице Vladsss Общие вопросы Javascript 15 01.09.2009 17:02