Получение текста из выпадающего списка

Это получает значение того, что выбрано в моем выпадающем меню.

document.getElementById('newSkill').value

Однако я не могу узнать, какое свойство нужно искать для текста, который в данный момент отображается в раскрывающемся меню. Я попробовал «текст», затем посмотрел на W3Schools, но у него не было ответа, кто-нибудь здесь знает?

Для тех, кто не уверен, вот HTML-код для выпадающего списка.

<select name="newSkill" id="newSkill">
    <option value="1">A skill</option>
    <option value="2">Another skill</option>
    <option value="3">Yet another skill</option>
</select>
8.08.2008 13:36:16
12 ОТВЕТОВ
РЕШЕНИЕ

На основе вашего примера HTML-кода, вот один из способов получить отображаемый текст выбранной опции:

var skillsSelect = document.getElementById("newSkill");
var selectedText = skillsSelect.options[skillsSelect.selectedIndex].text;
128
2.10.2008 13:24:05
Для тех, кто опоздал на вечеринку, было несколько предложений, но никто не заметил, что они сказали .value, где они должны сказать .text, смутный день для всех нас.
Teifion 19.09.2008 10:59:14

Получает ли это правильный ответ?

document.getElementById("newSkill").innerHTML
1
8.08.2008 20:52:40
Это вернет вам весь HTML-код для опций, например, `<option value =" 1 "> A skill </ option> <option value =" 2 "> Другой навык </ option> <option value =" 3 " > Еще один навык </ option> `
Valentin Despa 29.11.2011 11:36:37
document.getElementById('newSkill').options[document.getElementById('newSkill').selectedIndex].value 

Должно сработать

7
15.02.2017 11:26:52
ОП хочет свойство .text, а не .value
ninjaPixel 29.10.2013 16:32:42

Это должно вернуть текстовое значение выбранного значения

var vSkill = document.getElementById('newSkill');

var vSkillText = vSkill.options[vSkill.selectedIndex].innerHTML;

alert(vSkillText);

Реквизит: @Tanerax за то, что прочитал вопрос, знал, что спросили, и отвечал на него, прежде чем другие поняли это.

Редактировать: DownModed, потому что я на самом деле полностью прочитал вопрос и ответил на него, печальный мир это.

8
8.08.2008 14:18:05

Это работает, я попробовал сам, я думал, что выложить это здесь на случай, если кому-то это нужно ...

document.getElementById("newSkill").options[document.getElementById('newSkill').selectedIndex].text;
4
2.02.2013 19:35:55
    var ele = document.getElementById('newSkill')
    ele.onchange = function(){
            var length = ele.children.length
            for(var i=0; i<length;i++){
                if(ele.children[i].selected){alert(ele.children[i].text)};              
            }
    }   
0
12.05.2014 18:45:29

Присоединяет событие изменения к выбору, которое получает текст для каждого выбранного параметра и записывает их в элемент div.

Вы можете использовать JQuery это очень лицо и успешным и простым в использовании

<select name="sweets" multiple="multiple">
  <option>Chocolate</option>
  <option>Candy</option>
  <option>Taffy</option>
  <option selected="selected">Caramel</option>
  <option>Fudge</option>
  <option>Cookie</option>
</select>
<div></div>


$("select").change(function () {
  var str = "";

  $("select option:selected").each(function() {
    str += $( this ).text() + " ";
  });

  $( "div" ).text( str );
}).change();
2
28.04.2016 09:25:38
var selectoption = document.getElementById("dropdown");
var optionText = selectoption.options[selectoption.selectedIndex].text;
0
10.02.2016 16:04:13
Как насчет текста, чтобы объяснить, что происходит?
stevek 11.02.2016 02:33:21
В то время как кодовый ответ решает проблему для операции, это не рекомендуется, так как он не представляет никакой ценности для будущих посетителей, а ответ, который только обеспечивает, быстро помечается как «очень низкое качество», и в результате этого он будут удалены быстро. отредактируйте свой ответ, чтобы включить объяснение, что делает предоставленный код.
Ferrybig 11.02.2016 09:25:09
Спасибо. Я надеюсь, что мой ответ легко понять другим.
Debanjan Roy 20.07.2016 13:30:18
когда я попытался войти в систему var optionText = selectoption.options[selectoption.selectedIndex].text;, возвращается только первый элемент опции. Я хочу, чтобы каждый из них отображался с onchangeсобытия.
Chris22 9.08.2017 06:57:41

Пожалуйста, попробуйте ниже это самый простой способ, и он отлично работает

var newSkill_Text = document.getElementById("newSkill")[document.getElementById("newSkill").selectedIndex];
0
29.03.2016 05:52:32

Просто вы можете использовать Jquery вместо Javascript

$("#yourdropdownid option:selected").text();

Попробуй это.

12
23.05.2017 09:26:17
Оригинальный вопрос не упоминает JQuery. Те из нас, кто не использует JQuery, обычно предпочитают, чтобы ответы не ссылались на него, если вопрос не ссылается или не помечает его тегами. Это особенно актуально, когда есть относительно краткое решение, подобное предложенному Патриком МакЭлхани.
cazort 2.04.2019 18:50:04
@cazort наоборот. Мне нужно было знать, как это сделать с JQuery, и этот ответ дал мне то, что мне нужно было знать, поэтому было очень полезно (и хорошо) Бобина Джозефа включить его в качестве ответа.
Broken Man 28.10.2019 11:01:16
function getValue(obj)
{  
   // it will return the selected text
   // obj variable will contain the object of check box
   var text = obj.options[obj.selectedIndex].innerHTML ; 

}

HTML-фрагмент

 <asp:DropDownList ID="ddl" runat="server" CssClass="ComboXXX" 
  onchange="getValue(this)">
</asp:DropDownList>
2
25.10.2017 05:40:31

Вот простой и короткий метод

document.getElementById('elementID').selectedOptions[0].innerHTML
0
13.02.2019 23:19:08