获取基于值的选择选项文本
Getting select option text based on value
我有一个菜单。 给定给定的值,我想返回文本。 例如,0 将返回"零",1 将返回"一",依此类推。 请注意,我不关心当前选择了哪个选项,也不想自动选择菜单,而只想将选择菜单用作原始数据库。 这可以使用JavaScript或jQuery轻松完成,而无需迭代每个选项吗?
<select>
<option value="0">zero</option>
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
</select>
谢谢
与其将select
用作数据库(需要昂贵的操作进行简单的查找),不如从中创建一个数据集一次,然后使用它...
var vals = $('select option').map(function(i, el) { return el.text; })
.toArray();
alert(vals[2]); // "two"
或者,如果option
值不是基于顺序0
的索引,则使用对象...
var vals = {};
$('select option').each(function(i, el) { vals[el.value] = el.text });
alert(vals[2]); // "two"
var value = '3';
alert($('select option[value=' + value + ']').text());
现场演示。
此外,您可能希望为选择提供一个 id 并更新选择器,因为如果您有多个下拉列表,选择器将不起作用:
alert($('#id_of_the_select option[value=' + value + ']').text());
否则如何在不迭代每个选项的情况下扫描值?没有任何神奇的属性可以为您做到这一点。
但是,您可以使用以下代码:
(function() {
var sels = document.getElementsByTagName('select'), l = sels.length, i,
opts, m, j, o;
for( i=0; i<l; i++) {
o = {};
opts = sels[i].options;
m = opts.length;
for( j=0; j<m; j++) o[opts[j].value] = opts[j].text;
sels[i].map = o;
}
})();
把它放在</body>
之前,现在你可以在你的页面上找到任何<select>
的地图:
var sel = document.getElementById('mySelect');
alert(sel['0']);
使用属性等于选择器:
var valToSearchFor = 0;
textFromOption = $('select option[value="' + valToSearchFor + '"]').text();
这仍将遍历每个option
以测试您正在寻找的值是否存在,但它将在"幕后"进行,这样您就不必这样做。
有可能使用querySelectorAll()
(尽管与上面的jQuery或多或少具有相同的表示法):
var valToSearchFor = 0;
textFromOption = document.querySelectorAll('option[value="' + valToSearchFor + '"]').innerHTML;
当然,这需要浏览器实现 querySelectorAll()
,而不是所有人都这样做(特别是 IE)。
引用:
- 属性等于
[attribute="value"]
选择器。 -
document.querySelectorAll()
.
使用selected:
选择器。页面上给出的示例。
http://api.jquery.com/selected-selector/
$("select").change(function () {
var str = "";
$("select option:selected").each(function () {
str += $(this).text() + " ";
});
$("div").text(str);
})
.trigger('change');
将"div"替换为您尝试触发的事件
http://jsfiddle.net/ckaufman/aDU5E/1/
相关文章:
- 或者在表单上选择默认选项文本(选择1)
- 在ractive.js中获取所选选项文本
- 使用VueJs获取Select选项文本
- Rally App SDK 2.0:rallymultiobjectpicker无法加载选项文本
- 选择选项文本作为数组
- 动态更改选项文本不起作用
- 页面重定向后,使用选定的选项文本更新下拉菜单文本
- 为什么选择只显示IE 9中选项文本的第一个字符
- 如何在jquery的选择下拉列表中获取选项文本
- 如何使“所选选项”与当前“所选选项”文本的宽度相同
- 使用选择选项文本更改价格
- 使用挖空将选项文本绑定到具有对象数组的属性
- 传递要发送的数据.选择选项文本和值
- 挖空.js从 AJAX 调用获取数据后更新选项文本
- 在选择框中从任意 JavaScript 对象绑定选项值和选项文本
- 显示选择选项文本日期
- 如何使用jquery或javascript使用选定的下拉选项文本设置innerhtml
- JSColor 不适用于 Volusion 选项文本框
- 如何在 HTML 选择中对选项文本的某些部分使用不同的颜色
- 获取基于值的选择选项文本