Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сортировка блоков (https://javascript.ru/forum/misc/41012-sortirovka-blokov.html)

feniks7 28.08.2013 13:17

Сортировка блоков
 
Ситуация:
1) Битрикс
2) Информация элементов выводится в <div>'ы. По такой структуре:
<div id="$id$" class="$section$ $iteration$">
<div id="price">
$PRICE$
</div>
<div id="image">
</div>
<div id="brand">
$BRAND$
</div>
</div>

И так множество блоков.
3) Имеется на странице 2 элемента <a>:
<span>Сортировка</span>
			<a style="cursor:pointer;text-decoration:underline;">по цене </a>/
			<a style="cursor:pointer;">по бренду</a>


При нажатии нужно сортировать блоки по цене/бренду. (По бренду - в алфавитном порядке)

Чтобы доставать информацию например $PRICE$ из каждого блока для других целей, использовал
$(this).text();

и чтобы достать определенный текст
txt.split('=')[n];

JQuery уже подключена к странице, так что можно использовать)

tsigel 28.08.2013 14:08

Есть вариант сортировать на сервере и ререндорить блок с информацией. Не вижу ваших попыток и мыслей на этот счет. Если хотите готовые скрипты пишите в раздел Работа.

ksa 28.08.2013 14:08

Цитата:

Сообщение от feniks7
При нажатии нужно сортировать блоки по цене/бренду.
...
JQuery уже подключена к странице, так что можно использовать

Внимание, вопрос! (с) (звучит гонг)

Яростный Меч 28.08.2013 14:27

Цитата:

Сообщение от feniks7
нужно сортировать

собираешь блоки в массив, далее http://javascript.ru/Array/sort , (главное правильно написать функцию сравнения), далее очищаешь родительский див, потом обход массива и добавление элементов.

feniks7 28.08.2013 14:42

Хм, ну мне надо прямо локально на странице, без перезагрузки.
С ДжКьюри я неочень понимаю как работать, умею пользоваться свитчклассом и добавлять драгбл)
Вопрос - какое решение использовать. Чтобы при нажатии на кнопку блоки шустренько менялись местами в зависимости от параметра прайс или брэнд.
Плюс я пока неочень представляю способ реализации данной идеи. То есть мы по циклу берем блоки, text() и split() его содержимое. Затем сравниваем значения с предыдущим занесенным во временную переменную, а после этого неким методом(каким?) вставляем блок перед другим. Хотя по ходу написания этого осознал что мысль ошибочна..

feniks7 28.08.2013 14:51

Цитата:

Сообщение от Яростный Меч
собираешь блоки в массив, далее http://javascript.ru/Array/sort , (главное правильно написать функцию сравнения), далее очищаешь родительский див, потом обход массива и добавление элементов.

Не понял. Сорт - как я вижу сортирует элементы численного массива по порядку. У меня же сортировка должна итти по одной из строк текста содержащейся в диве.

animhotep 28.08.2013 14:59

Цитата:

Сообщение от feniks7
Сорт - как я вижу сортирует элементы численного массива по порядку

строки тоже сортирует
arr = ["az","aw", "aq"];
alert ( arr.sort() );

Яростный Меч 28.08.2013 15:06

Цитата:

Сообщение от feniks7
Сорт - как я вижу сортирует элементы численного массива по порядку. У меня же сортировка должна итти по одной из строк текста содержащейся в диве.

sort может сортировать по всякому. Надо только правильно написать функцию сравнения.

feniks7 28.08.2013 15:07

Цитата:

Сообщение от animhotep
строки тоже сортирует

Ну строки строками. Но мне ведь не сами строки а блоки их содержащие нужны..

рони 28.08.2013 15:10

feniks7,
для медитации
Сортировка блоков по параметрам
Как упорядочить несколько тегов одновременно


Часовой пояс GMT +3, время: 16:02.