如何获取Javascript选择框的选定文本

Aaj*_*hid 78 javascript select

这件事情很完美

<select name="selectbox" onchange="alert(this.value)">
Run Code Online (Sandbox Code Playgroud)

但我想选择文字.我试过这种方式

<select name="selectbox" onchange="alert(this.text)">
Run Code Online (Sandbox Code Playgroud)

它显示未定义.我找到了如何使用DOM来获取文本.但我想以这种方式做到这一点,我的意思就像使用this.value.

Del*_*ani 124

this.options[this.selectedIndex].innerHTML
Run Code Online (Sandbox Code Playgroud)

应该为您提供所选项目的"显示"文本.this.value就像你说的那样,只提供了value属性的价值.

  • 我不喜欢它.虽然我确信它在当前的浏览器上工作,但它是基于DOM元素的代码和旧式表单操作代码的奇怪混合.`options`返回一个`Option`对象的列表,我不确定它是否与`<option>`元素在同一个地方指定.最好使用所选"选项"的历史悠久的`text`属性,这可以保证工作. (6认同)

Ode*_*ded 66

要获取所选项目的值,您可以执行以下操作:

this.options[this.selectedIndex].text
Run Code Online (Sandbox Code Playgroud)

这里options访问了不同的select,并SelectedIndex用于选择所选的一个,然后text访问它.

在这里阅读有关选择DOM的更多信息.

  • SHAKTI:那是因为它是`selectedIndex`而不是`SelectedIndex`. (3认同)
  • 或者,只是为了好玩,`this.selectedOptions[0].text`(如果你有一个多选,有明显的扩展名)。 (2认同)

小智 36

请尝试以下代码:

$("#YourSelect>option:selected").html()
Run Code Online (Sandbox Code Playgroud)


小智 31

只是用

$('#SelectBoxId option:selected').text(); 用于获取列出的文本

$('#SelectBoxId').val(); 获取选定的索引值

  • 虽然这适用于jQuery,但OP仅将javascript列为原始标记.仍然是+1,因为很多人使用jQuery. (2认同)