84

这将获取在我的下拉菜单中选择的任何值。

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>
4

13 回答 13

146

根据您的示例 HTML 代码,这是获取当前所选选项的显示文本的一种方法:

var skillsSelect = document.getElementById("newSkill");
var selectedText = skillsSelect.options[skillsSelect.selectedIndex].text;
于 2008-08-08T13:54:55.983 回答
19

简单地你可以使用 jQuery 而不是 JavaScript

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

试试这个。

于 2017-05-23T09:26:17.967 回答
9

这应该返回所选值的文本值

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

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

alert(vSkillText);

道具:@Tanerax 用于阅读问题,知道被问到什么并在其他人弄明白之前回答它。

编辑:DownModed,因为我实际上完全阅读了一个问题,并回答了它,这是一个悲伤的世界。

于 2008-08-08T13:52:02.883 回答
7
document.getElementById('newSkill').options[document.getElementById('newSkill').selectedIndex].value 

应该管用

于 2008-08-08T13:41:11.737 回答
4

这个工作我自己试过我想我把它贴在这里以防有人需要它......

document.getElementById("newSkill").options[document.getElementById('newSkill').selectedIndex].text;
于 2013-02-02T19:35:55.210 回答
2

将更改事件附加到获取每个选定选项的文本并将它们写入 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();
于 2015-10-01T11:55:22.013 回答
2
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>
于 2017-10-25T05:40:31.203 回答
1

这能得到正确答案吗?

document.getElementById("newSkill").innerHTML
于 2008-08-08T13:40:04.780 回答
1

这是一个简单而简短的方法

document.getElementById('elementID').selectedOptions[0].innerHTML
于 2019-02-13T23:19:08.650 回答
0
    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)};              
            }
    }   
于 2014-05-12T18:45:29.977 回答
0
var selectoption = document.getElementById("dropdown");
var optionText = selectoption.options[selectoption.selectedIndex].text;
于 2016-02-01T05:00:15.117 回答
0

请尝试以下方法,这是最简单的方法,并且效果很好

var newSkill_Text = document.getElementById("newSkill")[document.getElementById("newSkill").selectedIndex];
于 2016-03-29T05:52:32.843 回答
0

发现这是一个棘手的问题,但使用这里的想法,我最终得到了使用 PHP 和 Mysqli 填充列表的解决方案:然后使用一些 javascript 来获取工作变量。

        <select  id="mfrbtn" onchange="changemfr()" >   
        <option selected="selected">Choose one</option>
            <?php
            foreach($rows as $row)
                {
                echo '<option   value=implode($rows)>'.$row["Mfrname"].'</option>';
                 }
              ?>
          </select>

然后 :

<script language="JavaScript">
    
    function changemfr()
    {
     var $mfr2=document.getElementById("mfrbtn").selectedOptions[0].text;
     alert($mfr2);
    }
</script>
于 2021-06-03T10:31:01.820 回答