powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Select в IE
12 сообщений из 12, страница 1 из 1
Select в IE
    #34944478
aazm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для пользователей, выделенных в селекте пытаюсь выполнить следующий код:
var users_select = document.getElementById("test_user_list").options;
for(var i in users_select){
if(users_select .selected == "true"){
alert("++");
}
}
ИЕ ругается: selected null или не является объектом. Подскажите, пожалуйста, как это обойти:)
...
Рейтинг: 0 / 0
Select в IE
    #34945342
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
итерировать от 0 до count
...
Рейтинг: 0 / 0
Select в IE
    #34948182
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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"]...
...
Рейтинг: 0 / 0
Select в IE
    #34948215
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qu-quявляется альтернативным (т.н. "неявным") способом получения свойства объекта, т.е. someObject.someProperty == someObject["someProperty"]...откуда видно, что i является объектом типа string.
...
Рейтинг: 0 / 0
Select в IE
    #34948265
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo... откуда видно, что i является объектом типа string.
кста, не обязательно он "обязан" быть типом string раз его принимает без ругани встроенный "индексатор"...
Мы ж, все-таки об IE ведем речь, а там вместо JavaScript присутствует JScript с его ECMA/non-ECMA фичами... Не хочу сейчас рыться в документациях/спецификациях, но вполне допускаю мысль, что "оно само у себя внутре" добавляет к объекту любого типа вызов toString() перед передачей его на вход индексатора [...] .
...
Рейтинг: 0 / 0
Select в IE
    #34948314
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а на входе оператора typeof ?
...
Рейтинг: 0 / 0
Select в IE
    #34948323
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
согласно ECMA, это определённо string
...
Рейтинг: 0 / 0
Select в IE
    #34948327
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понял… топик вроде не сдесь лежал…
...
Рейтинг: 0 / 0
Select в IE
    #34948498
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoа на входе оператора typeof ?
Тьху, блин...
Опять начал "мудрствовать лукаво" на пустом месте... пардоньте.
Меня всегда умиляла способность мелкомягких запутать разработчика "в двух соснах" массивы/коллекции (выделено мной):
MSDN
Syntax:
[ oColl = ] SELECT.options;
...
Possible Values:
...
oColl Array of option objects.
...

Хотя, "при ближайшем рассмотрении" (тем же for ... in ... ) это оказывается вовсе и не Array никакой, а просто объект коллекции с реализацией т.н. "associative array", у которого явно введены свойства "0", "1", "2" ... "<length-1>" для "облегчения" доступа к элементам по числовому индексу, млин...
...
Рейтинг: 0 / 0
Select в IE
    #34948526
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
именно так массивы у них и устроены: доступ по индексу идентичен доступу к свойству.
...
Рейтинг: 0 / 0
Select в IE
    #34948651
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoименно так массивы у них и устроены: доступ по индексу идентичен доступу к свойству.
Ну да, ну да...
Только у "обычного" массива (var arr = [3,2,1]; // or new Array(3,2,1);) конструкция for ... in ... ничего кроме набора индексов не возвращает, и поэтому для их "работает" конструкция типа: for (idx in arr) doSomeThingWith(arr[idx]);.
К сожалению, для т.н. "встроенных коллекций" (options, etc.) это уже далеко не так, потому что они, кроме индексов, напичканы еще и своими собственными свойствами/методами...
ИМХО, было бы все-таки правильнее не называть такие объекты (встроенные коллекции) массивами, хотя бы в документации...
...
Рейтинг: 0 / 0
Select в IE
    #34951983
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с другой стороны
мсднoptions Collection

--------------------------------------------------------------------------------

Retrieves a collection of the OPTION objects in a SELECT object.

Syntax

[ collOptions = ] select.options
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Select в IE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]