Имя: Пароль:
IT
Веб-мастеринг
HTML <SELECT> Javascript. Как получить выбранный элемент?
0 Ислам
 
04.04.14
12:47
<select id="playlist" ondblclick="selectTrack()" size="20">
    <optgroup class="curTrack" label="REP"></optgroup>
        <option>161_Akon feat. Eminem - Smack That.mp3</option>
        <option>Afroman - Because I Got High.mp3</option>
        <option>Aphrodite - Jungle Brothers.mp3</option>
</select>

Нужно получить жаваскриптом выбранный объект <option> чтобы вытащить из него внутренний текст.
1 Ислам
 
04.04.14
12:56
Нашел сам.
Другой вопрос: Если есть номер option, как получить номер children равного этому option?
2 Ислам
 
04.04.14
13:04
на другом форуме подсказали. Можно закрывать темку
3 Ислам
 
04.04.14
13:19
Оказывается неправильно подсказали.
Вопрос открыт: Как получить номер children'а в селекте имея самого этого children'а?
4 kokamoonga
 
04.04.14
13:48
select.childNodes[0].index; // 0
5 Ислам
 
04.04.14
13:55
(4) так не работает.
playlist.childNodes[0].index // -1
index показывает номер option не учитывая что есть optgroup
6 kokamoonga
 
04.04.14
14:11
(5) кусок DOM на котором это происходит, пока не верю.


на главной мисты с optgroup:

s.childNodes[1].childNodes[0]; // <option value="section=admin">Админ</option>
7 kokamoonga
 
04.04.14
14:12
(6) + кусок DOM = покажи кусок DOM
8 ramir
 
04.04.14
14:27
(3) Зачем? Уверен все решается гораздо проще.
9 kokamoonga
 
04.04.14
14:28
(5) (6) да, был не прав. optgroup можно получить по индексу зная его, но у самого элемента такого свойства нет. Шизофрения какая-то.

Очень просто это решается на jQuery

$('optgroup').index()

Как на чистом решить пока не вижу.
10 kokamoonga
 
04.04.14
14:47
(9) +

Посмотрел в исходниках что за магию делает jQuery (http://code.jquery.com/jquery-1.11.0.js). Вобщем никакой магии там нет. Они вызывают метод inArray(), который возвращает индекс путем перебора всей коллекции.