Получение текста выбранного элемента <option>в <select> - PullRequest
150 голосов
/ 04 марта 2009

В следующем:

<select id="test">
    <option value="1">Test One</option>
    <option value="2">Test Two</option>
</select>

Как получить текст выбранной опции (т. Е. "Test One" или "Test Two") с использованием JavaScript

document.getElementsById('test').selectedValue возвращает 1 или 2, какое свойство возвращает текст выбранного параметра?

Ответы [ 12 ]

248 голосов
/ 04 марта 2009
function getSelectedText(elementId) {
    var elt = document.getElementById(elementId);

    if (elt.selectedIndex == -1)
        return null;

    return elt.options[elt.selectedIndex].text;
}

var text = getSelectedText('test');
85 голосов
/ 01 сентября 2010

Если вы используете jQuery, вы можете написать следующий код:

$("#selectId option:selected").html();
53 голосов
/ 16 ноября 2011
document.getElementById('test').options[document.getElementById('test').selectedIndex].text;
27 голосов
/ 15 августа 2013
selectElement.options[selectElement.selectedIndex].text;

Ссылки:

21 голосов
/ 15 мая 2013

Под HTML5 вы можете сделать это:

document.getElementById('test').selectedOptions[0].text

Документация MDN по адресу https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/selectedOptions указывает на полную межбраузерную поддержку (по крайней мере на декабрь 2017 года), включая браузеры Chrome, Firefox, Edge и мобильные устройства, но исключая Internet Explorer.

6 голосов
/ 04 марта 2009

Свойство options содержит все <options> - оттуда вы можете посмотреть .text

document.getElementById('test').options[0].text == 'Text One'
5 голосов
/ 22 июля 2017

Вы можете использовать selectedIndex для получения текущего выбранного option:

el = document.getElementById('elemId')
selectedText = el.options[el.selectedIndex].text
3 голосов
/ 19 февраля 2016

this.options [this.selectedIndex] .innerText

2 голосов
/ 31 июля 2015

Если вы нашли эту ветку и хотели узнать, как получить выбранный текст опции через событие, вот пример кода:

alert(event.target.options[event.target.selectedIndex].text);
1 голос
/ 02 сентября 2016

Используйте объект списка выбора, чтобы определить свой собственный индекс выбранных опций. Оттуда - захватить внутренний HTML-код этого индекса. И теперь у вас есть текстовая строка этой опции.

<select onchange="alert(this.options[this.selectedIndex].innerHTML);">
       <option value="">Select Actions</option>
       <option value="1">Print PDF</option>
       <option value="2">Send Message</option>
       <option value="3">Request Review</option>
       <option value="4">Other Possible Actions</option>
    </select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...