首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取最终用户看到的<option>文本

如何获取最终用户看到的<option>文本
EN

Stack Overflow用户
提问于 2014-01-12 22:32:34
回答 2查看 118关注 0票数 1

我有这样的代码,圣经的书籍都在一个元素中:

代码语言:javascript
复制
<option value="1">Genesis</option>
<option value="2">Exodus</option>
<option value="3">Leviticus</option>
<option value="4">Numbers</option>
<option value="5">Deuteronomy</option>
<option value="6">Joshua</option>
<option value="7">Judges</option>

为了进一步解释,我有一个作为图书ID的值,所以当我从我的数据库中获取所有的诗句时,我可以通过书号来引用它们。

但是这样做,我没有办法让用户看到友好的名字,像“创世纪”,所以我可以这样格式化它。

如何获取这个(当前选定的一个,即“创世纪”而不是'1')来自JavaScript?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-13 00:12:13

getElementById的结果保存到像sel这样的变量中,然后执行以下操作:

代码语言:javascript
复制
var text = sel.options[sel.selectedIndex].text;

Select元素具有一个.options属性,它为您提供了其所有嵌套选项元素的类似数组的集合。它们还有一个.selectedIndex属性,它返回当前选定元素的索引。

使用这两个选项,您可以获得当前选定的选项。然后,只需使用.text获取所选option的文本内容。

如果您不需要支持IE6/7,可以使用document.querySelector()来缩短时间。

代码语言:javascript
复制
var text = document.querySelector("#the_select_id option:selected").text;

querySelector()方法返回单个元素,如果没有找到,则返回null。还有一个querySelectorAll()方法,它将返回一个元素集合,用于选择器何时匹配多个元素。

票数 1
EN

Stack Overflow用户

发布于 2014-01-12 23:19:15

如果父元素将name=“book”作为属性,并且是select元素,则可以使用jQuery:

代码语言:javascript
复制
var bookName = $('select[name="books"] option:selected').text();

如果父元素有一个id=“book”作为属性,并且是一个select元素,那么您可以使用普通的JavaScript (可能会在以下基础上进行改进)来完成这个任务:

代码语言:javascript
复制
var books = document.getElementById('books');
var bookName = books.options[books.selectedIndex].text;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21081130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档