在<select>元素中检索所选<option>的文本

在下面的:

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

如何使用JavaScript获取所选选项的文本(即“testing一”或“testing二”)

document.getElementsById('test').selectedValue返回1或2,什么属性返回所选选项的文本?

 function getSelectedText(elementId) { var elt = document.getElementById(elementId); if (elt.selectedIndex == -1) return null; return elt.options[elt.selectedIndex].text; } var text = getSelectedText('test'); 

如果你使用jQuery,那么你可以写下面的代码:

 $("#selectId option:selected").html(); 
 document.getElementById('test').options[document.getElementById('test').selectedIndex].text; 
 selectElement.options[selectElement.selectedIndex].text; 

参考文献:

  • 选项集合,selectedIndex属性: HTML DOMselect对象
  • 文本属性: HTML DOM选项对象
  • 正是这个问题的答案: 选项文本属性

options属性包含了所有的<options> – 从这里你可以看到.text

 document.getElementById('test').options[0].text == 'Text One' 

在HTML5下,你将能够做到这一点:

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

但是,目前浏览器的支持还不够。 Chrome 27(写作时通用)支持这个function,但是,请参阅Mozilla https://bugzilla.mozilla.org/show_bug.cgi?id=596681上显示的错误,表示目前没有。;

this.options [this.selectedIndex] .innerText

如果你发现这个线程,并想知道如何通过事件获得选定的选项文本,这里是示例代码:

 alert(event.target.options[event.target.selectedIndex].text); 

使用select列表对象来标识自己select的选项索引。 从那里 – 抓住该索引的内部HTML。 现在你有该选项的文本string。

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

类似于没有jQuery的@artur,用普通的javascript:

//使用@ Sean-bright的“elt”variables

 var selection=elt.options[elt.selectedIndex].innerHTML; 

您可以使用selectedIndex检索当前选定的option

 el = document.getElementById('elemId') selectedText = el.options[el.selectedIndex].text