jquery如何获取一个select里面的所有option的值呢?
<option>全部</option>
<option>os2</option>
<option>os2-anthonos</option>
<option>os2-apps</option>
<option>os2-centralpoint</option>
<option>kf5-experimental</option>
</select>
就这段里面,如何把os2,os2-anthonos等等,这些值选出来,选成一个数组 展开
基本思路:遍历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);
});
});
3、效果演示
$(document).ready(function(){
var array = new Array(); //定义数组
$("#mi_name option").each(function(){ //遍历全部option
var txt = $(this).text(); //获取option的内容
if(txt != "全部") //如果不是“全部”
array.push(txt); //添加到数组中
});
});
如上代码可以解决,写了注释,希望可以帮到你
$('select option').map(function(){
if($(this).text() != '全部'){
return $(this).text();
}
});
应该不需要全部那个值吧? 如果需要的话 就把if条件去掉
$("option").each(function(){
var v= $(this).val();//这句获取当前遍历到的option的值
$("body").append(v);
})