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(), который возвращает индекс путем перебора всей коллекции.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший