|
|
|
Select в IE
|
|||
|---|---|---|---|
|
#18+
Для пользователей, выделенных в селекте пытаюсь выполнить следующий код: var users_select = document.getElementById("test_user_list").options; for(var i in users_select){ if(users_select .selected == "true"){ alert("++"); } } ИЕ ругается: selected null или не является объектом. Подскажите, пожалуйста, как это обойти:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2007, 12:18 |
|
||
|
Select в IE
|
|||
|---|---|---|---|
|
#18+
итерировать от 0 до count ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2007, 15:13 |
|
||
|
Select в IE
|
|||
|---|---|---|---|
|
#18+
aazmДля пользователей, выделенных в селекте пытаюсь выполнить следующий код: var users_select = document.getElementById("test_user_list").options; for(var i in users_select){ if(users_select .selected == "true"){ alert("++"); } } ИЕ ругается: selected null или не является объектом. Подскажите, пожалуйста, как это обойти:) Наверное, что-то типа так: var users_select = document.getElementById("test_user_list").options; for(var i in users_select){ if(i.selected == true){ alert("++"); } } Хинт: твоя переменная i уже является объектом типа option , т.е. незачем вытаскивать из коллекции users_select какие-то "неявные" свойства, индексированные этим объектом (вполне возможно, что эта коллекция таковых свойств просто не имеет, а если и имеет, то явно не такого типа, у которого есть свойство selected ). З.Ы. и вообще, применение оператора (метода?) индексирования [...] к коллекциям (массивам) в JavaScript - вещь "опасная", т.к. "со стороны" выглядит как обращение к элементу массива (коллекции) по какому-то индексу, а на самом деле является альтернативным (т.н. "неявным") способом получения свойства объекта, т.е. someObject.someProperty == someObject["someProperty"]... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2007, 11:11 |
|
||
|
Select в IE
|
|||
|---|---|---|---|
|
#18+
qu-quявляется альтернативным (т.н. "неявным") способом получения свойства объекта, т.е. someObject.someProperty == someObject["someProperty"]...откуда видно, что i является объектом типа string. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2007, 11:19 |
|
||
|
Select в IE
|
|||
|---|---|---|---|
|
#18+
maXmo... откуда видно, что i является объектом типа string. кста, не обязательно он "обязан" быть типом string раз его принимает без ругани встроенный "индексатор"... Мы ж, все-таки об IE ведем речь, а там вместо JavaScript присутствует JScript с его ECMA/non-ECMA фичами... Не хочу сейчас рыться в документациях/спецификациях, но вполне допускаю мысль, что "оно само у себя внутре" добавляет к объекту любого типа вызов toString() перед передачей его на вход индексатора [...] . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2007, 11:31 |
|
||
|
Select в IE
|
|||
|---|---|---|---|
|
#18+
а на входе оператора typeof ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2007, 11:40 |
|
||
|
Select в IE
|
|||
|---|---|---|---|
|
#18+
согласно ECMA, это определённо string ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2007, 11:42 |
|
||
|
Select в IE
|
|||
|---|---|---|---|
|
#18+
не понял… топик вроде не сдесь лежал… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2007, 11:43 |
|
||
|
Select в IE
|
|||
|---|---|---|---|
|
#18+
maXmoа на входе оператора typeof ? Тьху, блин... Опять начал "мудрствовать лукаво" на пустом месте... пардоньте. Меня всегда умиляла способность мелкомягких запутать разработчика "в двух соснах" массивы/коллекции (выделено мной): MSDN Syntax: [ oColl = ] SELECT.options; ... Possible Values: ... oColl Array of option objects. ... Хотя, "при ближайшем рассмотрении" (тем же for ... in ... ) это оказывается вовсе и не Array никакой, а просто объект коллекции с реализацией т.н. "associative array", у которого явно введены свойства "0", "1", "2" ... "<length-1>" для "облегчения" доступа к элементам по числовому индексу, млин... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2007, 12:19 |
|
||
|
Select в IE
|
|||
|---|---|---|---|
|
#18+
именно так массивы у них и устроены: доступ по индексу идентичен доступу к свойству. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2007, 12:28 |
|
||
|
Select в IE
|
|||
|---|---|---|---|
|
#18+
maXmoименно так массивы у них и устроены: доступ по индексу идентичен доступу к свойству. Ну да, ну да... Только у "обычного" массива (var arr = [3,2,1]; // or new Array(3,2,1);) конструкция for ... in ... ничего кроме набора индексов не возвращает, и поэтому для их "работает" конструкция типа: for (idx in arr) doSomeThingWith(arr[idx]);. К сожалению, для т.н. "встроенных коллекций" (options, etc.) это уже далеко не так, потому что они, кроме индексов, напичканы еще и своими собственными свойствами/методами... ИМХО, было бы все-таки правильнее не называть такие объекты (встроенные коллекции) массивами, хотя бы в документации... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2007, 12:59 |
|
||
|
Select в IE
|
|||
|---|---|---|---|
|
#18+
с другой стороны мсднoptions Collection -------------------------------------------------------------------------------- Retrieves a collection of the OPTION objects in a SELECT object. Syntax [ collOptions = ] select.options ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 14:19 |
|
||
|
|

start [/forum/topic.php?fid=14&msg=34948526&tid=1334080]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 133ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...