javascript获取所选文本而不是值

时间:2016-03-31 11:35:17

标签: javascript html

是否可以在select中获取所选文本而不是其值?

<select id="animals">
   <option value="mammals">Elephant</option>
   <option value="reptile">Snakes</option>
   <option value="mammals">Bear</option>
   <option value="birds">Ostrich</option>
</select>

我想知道被选中的动物类型。

感谢您的帮助。

5 个答案:

答案 0 :(得分:2)

function getSelectedText(elementId) {
    var elt = document.getElementById(elementId);

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

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

var text = getSelectedText('animals');

答案 1 :(得分:2)

  

使用Document.querySelector()返回文档中与指定的选择器组匹配的第一个元素。

console.log(document.querySelector('#animals option:checked').textContent);
<script src="http://gh-canon.github.io/stack-snippet-console/console.min.js"></script>
<select id="animals">
  <option value="mammals">Elephant</option>
  <option value="reptile">Snakes</option>
  <option value="mammals">Bear</option>
  <option value="birds">Ostrich</option>
</select>

Fiddle

答案 2 :(得分:0)

可以使用javascript selectedIndex和text方法完成。

&#13;
&#13;
<!DOCTYPE html>
<html>

<body>

  <p>Choose an option in the drop-down list and display that option.</p>

  <form>
    <select id="mySelect" onchange="myFunction()">
      <option value="mammals">Elephant</option>
      <option value="reptile">Snakes</option>
      <option value="mammals">Bear</option>
      <option value="birds">Ostrich</option>
    </select>
  </form>

  <p id="demo"></p>

  <script>
    function myFunction() {
      var x = document.getElementById("mySelect");
      var i = x.selectedIndex;
      document.getElementById("demo").innerHTML = x.options[i].text;
    }
  </script>

</body>

</html>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

我有一个类似的问题,我想将选定的文本(不是值)输出到Textarea框中。我是这样解决的:

     <label>Objectives :</label>
<select name="objectives" class="objectives" onchange="getObjectives(this);">
<option selected="selected">--Select Objectives--</option>
<option selected="selected">--One--</option>
<option selected="selected">--Two--</option>
</select>

<textarea rows="4" cols="30" id="objid"></textarea>

<script>
function getObjectives(sel) {
// Select option returns text instead of value of option
document.getElementById ("animals").value = sel.options[sel.selectedIndex].text;

}

   </script>

答案 4 :(得分:-1)

jQuery的:

this.options[this.selectedIndex].innerText

使用纯Javascript:

    app.get('/markers', function(req, res){
    var query = Marker.find({});
    query.exec(function(err, markers){
        if(err)
            res.send(err);
        res.json(markers);

试试这个