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 (). Вобщем никакой магии там нет. Они вызывают метод inArray(), который возвращает индекс путем перебора всей коллекции.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан