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

IT技术 javascript html dom
2021-02-05 23:25:01

在下面的:

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

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

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

6个回答
function getSelectedText(elementId) {
    var elt = document.getElementById(elementId);

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

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

var text = getSelectedText('test');
一如既往的精彩javascript!
2021-04-01 23:25:01
@Christallkeks -如果未选择任何内容,单行程序会引发异常更少的行并不总是更好。
2021-04-02 23:25:01
这个答案已经过时了,请参阅下面的@davidjb 的答案,以获得一个不错的 HTML5 单线。
2021-04-06 23:25:01

如果您使用 jQuery,那么您可以编写以下代码:

$("#selectId option:selected").html();
因为他想要文本,可能更好地使用 .text()
2021-03-15 23:25:01
不要与 混淆$("#selectId option[selected]"),它将选择具有“已选择”属性但当前可能未选中的选项。
2021-03-16 23:25:01
好像比较复杂。!
2021-03-18 23:25:01
document.getElementById('test').options[document.getElementById('test').selectedIndex].text;
在尝试了所有其他选项后,它也对我有用。
2021-04-04 23:25:01
这个词完美!
2021-04-04 23:25:01

在 HTML5 下,您可以执行以下操作:

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

位于https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/selectedOptions 的MDN 文档表明完全跨浏览器支持(至少截至 2017 年 12 月),包括 Chrome、Firefox、Edge 和移动浏览器,但不包括 Internet Explorer。

+1,同时这是要走的路。Firefox 票是固定的,我什至费心打开 MS Edge 来验证他们是否也支持它。
2021-03-21 23:25:01
selectElement.options[selectElement.selectedIndex].text;

参考:

比@wormhit 给出的答案更容易理解。+1 用于简化
2021-03-20 23:25:01