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