这东西工作完美
<select name="selectbox" onchange="alert(this.value)">
但是我想选择文本。我以这种方式尝试
<select name="selectbox" onchange="alert(this.text)">
显示未定义。我发现了如何使用DOM来获取文本。但是我想以这种方式做到这一点,我的意思是像只使用this.value。
Answers:
this.options[this.selectedIndex].innerHTML
应该为您提供所选项目的“显示”文本。this.value
就像您说的那样,仅提供value
属性的值。
Option
对象与HTMLOptionElement
对象相同。如果您反对使用options
,则可以选择使用children
或childNodes
代替(记不清是哪一个;我认为它们都起作用)
options
,但Option
对象约会前的HTMLOptionElement
对象,而且也没有说明我见过的强制要求Option
和HTMLOptionElement
必须是同样的事情,尽管他们很可能是同时支持大多数的浏览器。我的观点是,不要将两种样式混合使用会更安全。因此,我宁愿this.options[this.selectedIndex].text
还是基于的基于节点的事物selectedIndex
,由于需要在IE中过滤掉空白文本节点而使它变得复杂。
text
返回innerHTML
,或仅返回所有文本节点的组合?
为了获得所选项目的价值,您可以执行以下操作:
this.options[this.selectedIndex].text
在这里options
访问不同的选择,并SelectedIndex
使用来选择所选的内容,然后对其text
进行访问。
在此处阅读有关选择DOM的更多信息。
this.options[this.selectedIndex].value
与完全相同this.value
,抱歉。
selectedIndex
不是SelectedIndex
。
this.selectedOptions[0].text
(如果您具有多选功能,则具有明显的扩展名)。
请尝试以下代码:
$("#YourSelect>option:selected").html()
只需使用
$('#SelectBoxId option:selected').text();
用于获取列出的文本
$('#SelectBoxId').val();
用于获取选定的索引值
options
返回Option
对象列表,我不确定在任何地方都将其指定为与<option>
元素相同的对象。最好使用text
selected的历史悠久的属性,该属性Option
可以保证正常工作。