Answers:
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();
.text()
$("#selectId option[selected]")
,它将选择具有“已选择”属性但当前可能未选择的选项。
在HTML5下,您可以执行以下操作:
document.getElementById('test').selectedOptions[0].text
MDN在https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLSelectElement/selectedOptions上的文档表示全面的跨浏览器支持(至少从2017年12月开始),包括Chrome,Firefox,Edge和移动浏览器,但不包括Internet Explorer。
selectElement.options[selectElement.selectedIndex].text;
参考文献:
使用选择列表对象来标识其自己的选择选项索引。从那里-获取该索引的内部HTML。现在,您有了该选项的文本字符串。
<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>
.innerHTML
获取所有孩子及其属性。尽管当元素没有子元素时它可以工作,但是如果您的元素有子元素,它返回的效果将超出预期。
简单的方法:
const select = document.getElementById('selectID');
const selectedOption = [...select.options].find(option => option.selected).text;
find()
当您已经知道所选项目的索引时,为什么要使用?另外,如果没有选择的项目(<select multiple>
),则会产生错误。