![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
Добрый день, уважаемые!
Есть вариант как сделать сабж, иначе неж перебирать все option в select, пока не найдем нужный value? На чистом JavaScript. up если что, под выбором подразумивается selected="selected" Это сообщение отредактировал(а) maxipub - 29.5.2013, 11:24 |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 5 Всего: 55 |
JavaScript предоставляет отличную DOM.
Все опции содержаться в поле options объекта поля select.
Просто пользуйтесь описание DOM-объектов, чтобы узнать их полезные поля и методы: http://www.w3schools.com/jsref/dom_obj_select.asp -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| Amphiluke |
|
||||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
Конечно же, ответ — document.querySelector() ![]()
Этот ответ добавлен с нового Винграда - http://vingrad.com |
||||
|
|||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 5 Всего: 55 |
Только вот он медленный до ужаса. http://jsperf.com/find-selected-option querySelector как раз это и сделает, причем прихватит еще и кучу остальных элементов, у которых будет проверять параметры селектора. Коллекции в JS хранятся в виде хэш-таблиц. Так что выбирать напрямую из коллекции id-шных элементов, а потом из options, — самый быстрый способ. Для готовых конструкций, вроде тега select, лучше пользоваться стандартными и быстрыми возможностями. querySelector полезен, когда его нельзя заменить ничем, кроме такого же "ручного" перебора элементов. Это сообщение отредактировал(а) Arantir - 29.5.2013, 17:32 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
Ну если это дело не гонять в затяжных циклах, то это не аргумент против данного метода. А вообще тест, который вы привели, не совсем соответствует постановке задачи ТС. На самом деле, можно вполне оптимизировать код, использующий querySelector. Во первых, при возможности кэшировать результат, не повторяя поиск на каждой итерации. Во-вторых, область поиска по селектору не обязательно весь документ: элементы также реализуют этот метод для поиска в пределах своего контекста. Вот тест для постановки задачи данного топика: http://jsperf.com/find-option-by-value. Тут метод оказывается, вроде, не настолько «медленный до ужаса». Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 5 Всего: 55 |
Я руководствовался словами ТС. Наверное, он был не в курсе про select.options и select.selectedIndex, и хотел делать это через непосредственный select.value. Это сообщение отредактировал(а) Arantir - 29.5.2013, 18:02 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
Что за странность. Смотрел этот топик на новом двиге там этой поправки нет. Добавлено через 5 минут и 12 секунд Ну, коли так, и надо искать выбранный option, тогда да, querySelector — излишество… |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 5 Всего: 55 |
Грустно, что из-за такого иногда возникает непонимание между людьми... Странность еще та. Админы вроде-бы говорили, что база данных общая. Такие динамичные страницы, как темы, кешироваться не должны. В своих постах на новом движке изменения я вижу, хоть и делал их со старого движка. Может быть там понятие первого поста немного другое (например, это поле в таблице самой темы) и реадктирование, соотвтственно, тоже не такое как на старом. Это сообщение отредактировал(а) Arantir - 29.5.2013, 18:18 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
||||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |