这件事情完美地运作了。
<select name="selectbox" onchange="alert(this.value)">
但是我想选择文本。我尝试了这种方式。
<select name="selectbox" onchange="alert(this.text)">
它显示为未定义。 我发现如何使用DOM获取文本。但我想以这种方式完成,我的意思是只使用this.value。
这件事情完美地运作了。
<select name="selectbox" onchange="alert(this.value)">
但是我想选择文本。我尝试了这种方式。
<select name="selectbox" onchange="alert(this.text)">
它显示为未定义。 我发现如何使用DOM获取文本。但我想以这种方式完成,我的意思是只使用this.value。
this.options[this.selectedIndex].innerHTML
你应该提供所选择项目的“显示”文本。像你说的那样,this.value
仅提供value
属性的值。
要获取所选项目的值,可以执行以下操作:
this.options[this.selectedIndex].text
这里访问了选择框的不同 选项
,并使用SelectedIndex
选择所选项,然后访问其text
。
在此处阅读更多关于选择框DOM的信息这里。
this.options[this.selectedIndex].value
和 this.value
是完全相同的。 - Delan AzabaniselectedIndex
而不是 SelectedIndex
。 - Tim Downthis.selectedOptions[0].text
(如果您有多选,则显然需要扩展)。 - ruffin$("#YourSelect>option:selected").html()
获取下拉框中选项的文本,只需使用
$('#SelectBoxId option:selected').text();
获取选定索引值,只需使用
$('#SelectBoxId').val();
如果您想获取值,可以使用以下代码选择ID为“selectBox”的选择元素
let myValue = document.querySelector("#selectBox").value;
var sel = document.getElementById("selectBox");
var text= sel.options[sel.selectedIndex].text;
我知道这里没有人要求jQuery的解决方案,但值得一提的是,使用jQuery你只需要请求:$('#selectorid').val()
<select name="select">
<option value="1">0.5</option
<option value="2">0.7</option
</select>
而且你需要捕获文本。 对于我来说,我已经尝试使用HTML(PHP),然后
this.options[this.selectedIndex].text
(来自Delan Azabani)不起作用,但是
this.options[selectedIndex].text
像这样在HTML上工作
<select ... onChange="upTVA(this.options[selectedIndex].text);">
仍然令人惊讶的是,对于一个选择器,this.text
不起作用,而this.value
起作用。
options
返回一个Option
对象列表,我不确定它们是否被指定为与<option>
元素相同的东西。最好使用经典的选定Option
的text
属性,这是保证可行的。 - Tim DownOption
对象与HTMLOptionElement
对象相同。如果您不喜欢使用options
,您可以选择使用children
或childNodes
(我记不清哪一个了;我认为它们都可以)。 - Delan Azabanioptions
,但是Option
对象早于HTMLOptionElement
对象,并且我没有看到任何规范要求Option
和HTMLOptionElement
必须是相同的东西,即使它们在大多数支持两者的浏览器中可能是相同的。我的观点是最好不要混合两种样式。所以,我更喜欢this.options[this.selectedIndex].text
或基于selectedIndex
的基于节点的东西,这在IE中需要过滤掉空格文本节点并且比较复杂。 - Tim Downtext
返回innerHTML
还是所有文本节点组合起来? - Delan Azabani