Javascript.RU

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

Сортировка <option> в <select>
Как сделать чтобы все <option> в <select> сортировалис автоматически? Например по алфавиту.
Ответить с цитированием
  #2 (permalink)  
Старый 27.12.2010, 13:19
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

<select id='foo'>
	<option>
		Г
	</option>
	<option>
		А
	</option>
	<option>
		В
	</option>
	<option>
		Б
	</option>
</select>

<script type='text/javascript'>
	(function () {
		var wrapper = document.getElementById("foo"),
		nodes = wrapper.getElementsByTagName("OPTION"),
		len = nodes.length,
		sorted = [];
		while (nodes[0]) {
			sorted.push(new String(nodes[0].value));
			sorted[sorted.length-1].element = nodes[0];
			wrapper.removeChild(nodes[0]);
		}
		sorted = sorted.sort();
		for (var i = 0; i < len; i++) {
			wrapper.appendChild(sorted[i].element);
		}
	})();
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 28.12.2010, 13:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,084

Сообщение от exec
nodes[0].value
value ни у одного option неуказано Internet Explorer неотсортирует ...
Вариант сортировки селектора по алфавиту:
<select id='foo'>
	<option value="4">Г</option>
	<option value="1">А</option>
	<option value="2">Б</option>
	<option value="3">В</option>
</select>
<script type='text/javascript'>
function sorted(id){for(var c=document.getElementById(id),b=c.options,a=0;a<b.length;)
if(b[a+1]&&b[a].text>b[a+1].text){c.insertBefore(b[a+1],b[a]);a=a>=1?a-1:a+1}else a++;
b[0].selected=true };
sorted("foo");
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 06.04.2015, 11:13
Новичок на форуме
Отправить личное сообщение для vipslord Посмотреть профиль Найти все сообщения от vipslord
 
Регистрация: 06.04.2015
Сообщений: 1

<script type='text/javascript'>
function sorted(id){for(var c=document.getElementById(id),b=c.options,a=0;a<b. length
if(b[a+1]&&b[a].text>b[a+1].text){c.insertBefore(b[a+1],b[a]);a=a>=1?a-1:a+1}else a++;
b[0].selected=true };
sorted("foo");
</script>[/html][/quote]
Спасибо за супер не читабельньій код. Самьіе лучшие знания. Очень полезно. Еще раз спасибо.
Ответить с цитированием
  #5 (permalink)  
Старый 06.04.2015, 11:48
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

hurricane, а где вы берете списки, что их приходится средствами клиента сортировать?
Ответить с цитированием
  #6 (permalink)  
Старый 06.04.2015, 11:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,084

vipslord,
так и Internet Explorer научился за это время value из text option брать ))) так что берите читаемый код из 2 поста.

Последний раз редактировалось рони, 06.04.2015 в 12:01.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как раскрыть <select> <option> A_V Элементы интерфейса 50 13.04.2011 11:51
Jquery UI Sortable, автоматическая сортировка объектов по нажатию кнопки. Professor jQuery 5 11.11.2010 16:17
Сортировка таблиц с tablesort lexniko jQuery 0 03.11.2009 13:02
Сортировка числовых данных в таблице Vladsss Общие вопросы Javascript 15 01.09.2009 17:02
Выделение строки <select> при выборе другого <select> simbion Элементы интерфейса 12 05.05.2009 03:43