![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| patt |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 9.11.2004 Где: Николаев Репутация: нет Всего: 2 |
Всем привет!
Задумка такая: в <select> есть <option> с текстом типа: "Выберите один из пунктов" и нужно по событию onchange его удалять для IE и оперы сделал:
как сделать, чтоб раболало в мазилле? |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 10 Всего: 260 |
this.options[0].parentNode.removeChild(this.options[0])
|
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
removeChild(options[0])
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
patt, чтобы при каждом событии onchange не удалять первую опцию:
|
|||
|
||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: 5 Всего: 19 |
RM, товарисчи:
selectObj.remove(optionIndex) - стандартный метод -------------------- ...все в мире относительно |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Nicholas_S, и действительно
Спасибо! -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| AKS |
|
||||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Nicholas_S,
Если это относится к конструкции:
то объясняйте - чем один стандартный метод предпочтительней другого, не менее стандартного. |
||||
|
|||||
| superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: нет Всего: 15 |
а я делал так и работало
document.form.select.options[0]=null |
|||
|
||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: 5 Всего: 19 |
AKS, это примерно как вопрос "если есть динамит, зачем брать удочку"
-------------------- ...все в мире относительно |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
AKS, насколько я понимаю, встроенный метод remove интерфейса HTMLSelectElement всегда удаляет именно опции, а чайлдами селекта могут быть и OPTGROUP. В таком случае варианты с removeChild не будут работать без доработки, а метод remove - будет.
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Nicholas_S,
SelenIT, создается впечатление, что вы "закрываете глаза" и не видите первый пост.
Я предложил простой вариант для решения конкретной задачи: 1. при первой обработке события удаляется нужный элемент. 2. в дальнейшем при обработке того же события ничего больше удаляться не будет. 3. в дополнение ко всему сохранен удаленный элемент, как св-во данного select'а. Причем тут "динамит", причем тут optgroup? Непонятно... |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
AKS, мой последний пост - лишь "имховый" ответ на вопрос,
Что данную конкретную задачу Ваш способ полностью решает, я ни в коей мере не оспариваю. -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| Zeroglif |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
Не боись, наши на подходе! Навскидку про remove - (1) он же, гад, ваапще не модный, старый, некрасивый, и это в наше-то прототипно-фреймворкное время, (2) плюс он ноду в отличие от removeChild про запас не возвращает, (3) он вообще ничего не возвращает, ищи потом, что он там натворил и натворил ли вообще, особенно когда удаляешь по selectedIndex, который может быть и -1, (4) исключения он нам не бросает, неизвестно попал ты с индексом в точку или нет, (5) а ежели ему вместо числа-примитива случайно подсунуть что-нибудь другое: wrapper числа или ноду какую (всё ж в жизни бывает, апшипся человек), так он не только исключение не бросит, а заодно ещё и нулевой option удалит... опять втихую... Это сообщение отредактировал(а) Zeroglif - 26.10.2006, 14:50 |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Zeroglif, вот это да!
В очередной раз поражаюсь глубине Ваших познаний и неисчерпаемости парадоксов яваскрипта... Огромное спасибо за развеивание моего заблуждения относительно надежности "старых добрых" специализированных методов! -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| patt |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 9.11.2004 Где: Николаев Репутация: нет Всего: 2 |
Всем огромное спаимбо, AKSу, отдельное: вставил - всё работает.... красота
Это сообщение отредактировал(а) patt - 26.10.2006, 17:42 |
|||
|
||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: 5 Всего: 19 |
Zeroglif, здается мне, что у вас паранойя.
Добавлено @ 19:39 patt, "даже думать не пришлось" - в том и проблема, что думать не пришлось самому... и это расхолаживает. -------------------- ...все в мире относительно |
|||
|
||||
| GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 2 Всего: 32 |
Всем привет!
А все элементы как удалить из оптиуна? Пройтись циклом или есть отдельная функция? -------------------- ![]() ![]() |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Проверьте вот так:
|
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
AKS, может быть, this.options.length? Или я опять пропустил что-то очень существенное?
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| AKS |
|
||||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
SelenIT,
Не более, чем когда Вы писали:
;) |
||||
|
|||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
AKS, намек понял ;)
вот так, казалось бы, обыкновенный селект может за два дня полностью перевернуть картину мира... :) Правда, там есть странное замечание
Буду крайне благодарен за разъяснения и по этому вопросу. |
|||
|
||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: 5 Всего: 19 |
Эх, понеслась! GZep, вот так:
-------------------- ...все в мире относительно |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
SelenIT,
С одной стороны - я не еще не "дорос" до той отметки, когда мог бы давать разъяснения (чаще я сам обращаюсь за ними). С другой стороны - а что там разъяснять? Вы пишите: "странное замечание". Что странного в том, что св-во (length) при неправильном к себе обращении имеет право "возмутиться" и, как выражается уважаемый Zeroglif, может бросить нам исключение (сообщение об ошибке)? Хотя еще и не сразу придумаешь, как его заставить это сделать... |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
AKS, виноват, вместо "странное" я должен был написать "для меня неочевидное". Меня интересовали именно условия, при которых попытка установить значение length считается "неправильной" именно с точки зрения DOM (насколько я понимаю имя типа объекта-исключения) - в случае несоответствия типов и т.п. все (на первый взгляд) очевидно...
P.S. Скромность - это, конечно, хорошо... но тоже в разумных пределах -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
SelenIT,
Ну там написано "This property is a Number", и, видимо, что-то другое и должно считаться ошибочным... |
|||
|
||||
| GZep |
|
||||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 2 Всего: 32 |
Эээ...Уважаемый, Nicholas_S, может я не очень шарю, но по-моему там создается select... А мне надо, чтоб при мзменении (допустим, радио "батона") в списке удалились все "оптиуны", а потом туда уже циклом(сам могу сделать -------------------- ![]() ![]() |
||||
|
|||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 10 Всего: 260 |
GZep, он вместо старого селекта с элементами-опциями впихивает вновь созданный(и потому - пустой) селект. метод радикальный, но вполне рабочий.
попробовал бы |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
AKS, если только дело только в типе - тогда понятно. Хотя, по моим интуитивным представлениям (которые срочно надо менять:) в таком случае был бы TypeError Exception, а у DOMException есть какая-то дополнительная специфика...
|
|||
|
||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: 5 Всего: 19 |
skyboy, grazie!
GZep, а если серьезно, то используя цикл:
-------------------- ...все в мире относительно |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
SelenIT,
А у меня и таких нет на этот счет. Я ведь сразу признался - ну не могу я давать разъяснений, по крайней мере в данном случае. Сам не меньше Вас хотел бы узнать, о чем там речь, чтоб "от и до", как говорится... |
|||
|
||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: 5 Всего: 19 |
AKS, дословно: "Это свойство является числом (т.е. number) и при установке может вызвать объект, включающий в себя интерфейс DOMException".
Другими словами, это свойство является обычным числом, а не объектом, так что никаких дополнительных действий совершать не будет при установке, поэтому если, например, указать в качестве значения -1, но результат будет предсказуемым. То же самое относится и к свойству select.options.length. Вообщем, все-таки пользоваться универсальными методами предпочтительнее, как то remove() и removeChild(), однако, как уже было замечено, второй метод предполагает отсутствие групп (optGroups) в select'е. -------------------- ...все в мире относительно |
|||
|
||||
| GZep |
|
|||
![]() участник Винграда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1528 Регистрация: 7.7.2006 Где: Москва Репутация: 2 Всего: 32 |
Извините, что надоедаю, проблему решил, просто непонятно, цикл - это лучше? Если "да", то чем? Мне просто интересно как сделать правильно...
и еще... Что такое options.add(new Option(ЭТО, ЭТО, ЭТО, И ЭТО));??????? Это сообщение отредактировал(а) GZep - 30.10.2006, 17:44 -------------------- ![]() ![]() |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |