1如果 select 元素下的所有 option 元素均没有指定 selected 属性,会默认选中第一个。
2可以通过 selectselectedIndex 获取到选中的 option 元素的索引。
3可以通过 selectoptions[selectselectedIndex] 获取到选中的 option 元素。
option 元素 <option selected="selected" value="value3">text3</option>,可以通过 optionvalue 获得 option 元素的 value 属性值,即 value3;可以通过 optiontext 获得 option 元素内的文本,即 text3。
4如果 option 元素没有定义 value 属性,则 IE 中 optionvalue 无法获得,但 Safari、Opera、FireFox 依旧可以通过 optionvalue 获得,值同于 optiontext 。
5可以通过 optionattributesvalue && optionattributesvaluespecified 来判断 option 元素是否定义了 value 属性。
6故,获得当前 select 元素值的脚本如下:
var getSelectValue = funtion(select) {
var idx = selectselectedIndex,
option,
value;
if (idx > -1) {
option = selectoptions[idx];
value = optionattributesvalue;
return (value && valuespecified) optionvalue : optiontext);
}
return null;
}
有时候我们需要在一个select中传递两个有关联但不同的值,比如你的这个情况。这时候要利用到option的另一个不常用属性name,用name来存储第二个值,然后在onchange事件中分别用thisoptions[thisselectedindex]name来调用这个值。
全12333
全12321
全123123
在你的程序里,把
之间的内容作为name属性写出来,然后定义一个隐藏的input——optt,再定义好onchange事件,就可以同时获取到value和name两个值了。
/遍历选中的option/
$("#id option:selected")each(function(i){
$(this)val();/获取选中的option值/
$(this)attr("selected",false);/将选中的option设置为未选中状态/
});
基本思路:遍历select下的option,使用val()获取每个option的值,然后加入到一个数组中。根据这个思路,可以使用for循环或者jQuery的each()遍历函数实现。这里提供一个更简洁的代码:
$("option")map(function(){return $(this)val();})get()join(", ")
代码说明:
使用map()函数把每个option的值传递到当前匹配集合,生成包含返回值的对象;
使用 get() 处理返回的对象以得到基础的数组;
使用join()函数组装字符串。
实例演示如下:
1、HTML结构
<select id="test">
<option value="option-1">option-1</option>
<option value="option-2">option-2</option>
<option value="option-3">option-3</option>
</select><br>
<input type="button" value="获取所有option值">
2、jquery代码
$(function(){
$(":button")click(function() {
var str = $("#test option")map(function(){return $(this)val();})get()join(", ")
alert(str);
});
});
以上就是关于如何获取当前 select 元素的值全部的内容,包括:如何获取当前 select 元素的值、如何获取select的option的value值、js怎么获取当前被选中的option值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)