Показать сообщение отдельно
  #1 (permalink)  
Старый 06.04.2013, 23:37
Новичок на форуме
Отправить личное сообщение для game_Racer Посмотреть профиль Найти все сообщения от game_Racer
 
Регистрация: 06.04.2013
Сообщений: 5

Показать/скрыть большое колличество option внутри select
Нужно реализовать фильтр в select по первой букве с помощью стандартных кнопок.
Сделал так:
function onShowBlock(id) {
$("select[name='group_id'] option").removeAttr("selected");
$("select[name='group_id'] option[class='show']").removeClass('show').wrap(document.createElement("span")).parent().hide();
$("select[name='group_id'] option[id="+id+"]").addClass('show').unwrap();
}

<p>Фильтр по первой букве:</p>
 <p><input type="button" id="l" onclick="onShowBlock(this.id);" value="L"> 
   <input type="button" id="i" onclick="onShowBlock(this.id);" value="I"> 
   <input type="button" id="d" onclick="onShowBlock(this.id);" value="D"> 
   <input type="button" id="s" onclick="onShowBlock(this.id);" value="S"></p>
<p>select</p>
<select name="group_id" size="1" >
<option>&nbsp;</option>
<option id="l" class="show" value="lorem">Lorem</option>
<option id="d" class="show" value="dolor">Dolor</option>
<option id="i" class="show" value="ipsum">Ipsum</option>
<option id="s" class="show" value="sit">Sit amet</option>
<option id="l" class="show" value="lorem">Lorem1</option>
<option id="d" class="show" value="dolor">Dolor1</option>
<option id="i" class="show" value="ipsum">Ipsum1</option>
<option id="s" class="show" value="sit">Sit amet1</option>
<option id="l" class="show" value="lorem">Lorem2</option>
<option id="d" class="show" value="dolor">Dolor2</option>
<option id="i" class="show" value="ipsum">Ipsum2</option>
<option id="s" class="show" value="sit">Sit amet2</option>
</select>

Все работает, но когда внутри select несколько тысяч option изрядно тормозит и вешает браузер. Может через массивы будет быстрее, но я с js познакомился на прошлой неделе, а то что выше написал по подсказкам гугла.
Ответить с цитированием