最近工作中总出现select
和 option
问题,整理一下,内容大部分源于网络资料
一、基础取值问题
例如<select class="selector"></select>
1、设置value
为pxx
的项选中
$(".selector").val("pxx");
2、设置text
为pxx
的项选中
$(".selector").find("option:contains('pxx')").attr("selected",true);
注意:之前$(".selector").find("option[text='pxx']").attr("selected",true);
这种写法是错误的,目前个人证实input
支持这种获取属性值的写法:"input[text='pxx']
",select
中需要"option:contains('pxx')
"这样获取。
这里有一个中括号的用法,中括号里的等号的前面是属性名称,不用加引号。很多时候,中括号的运用可以使得逻辑变得很简单。
3、获取当前选中项的value
$(".selector").val();
4、获取当前选中项的text
$(".selector").find("option:selected").text();
这里用到了冒号,掌握它的用法并举一反三也会让代码变得简洁。
二、很多时候用到select
的级联,即第二个select
的值随着第一个select
选中的值变化。这在jquery
中是非常简单的。
如:
$(".selector1").change(function(){
// 先清空第二个
$(".selector2").empty();
// 实际的应用中,这里的option一般都是用循环生成多个了
var option = $("<option>").val(1).text("pxx");
$(".selector2").append(option);
});
三、jQuery
获取Select
选择的Text
和Value
:
语法解释:
1. $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发
2. var checkText=$("#select_id").find("option:selected").text(); //获取Select选择的Text
3. var checkValue=$("#select_id").val(); //获取Select选择的Value
4. var checkIndex=$("#select_id ").get(0).selectedIndex; //获取Select选择的索引值
5. var maxIndex=$("#select_id option:last").attr("index"); //获取Select最大的索引值
四、jQuery
设置Select
选择的 Text
和Value
:
语法解释:
$("#select_id ").get(0).selectedIndex=1; //设置Select索引值为1的项选中
$("#select_id ").val(4); // 设置Select的Value值为4的项选中
$("#select_id option[text='jQuery']").attr("selected", true); //设置Select的Text值为jQuery的项选中
五、jQuery
添加/删除Select
的Option
项:
语法解释:
1. $("#select_id").append("<option value='Value'>Text</option>"); //为Select追加一个Option(下拉项)
2. $("#select_id").prepend("<option value='0'>请选择</option>"); //为Select插入一个Option(第一个位置)
3. $("#select_id option:last").remove(); //删除Select中索引值最大Option(最后一个)
4. $("#select_id option[index='0']").remove(); //删除Select中索引值为0的Option(第一个)
5. $("#select_id option[value='3']").remove(); //删除Select中Value='3'的Option
5. $("#select_id option[text='4']").remove(); //删除Select中Text='4'的Option
六、jquery radio
取值,checkbox
取值,select
取值,radio
选中,checkbox
选中,select
选中,及其相关
- 获取一组
radio
被选中项的值
var item = $('input[name=items][checked]').val();
- 获取
select
被选中项的文本
var item = $("select[name=items] option[selected]").text();
select
下拉框的第二个元素为当前选中值
$('#select_id')[0].selectedIndex = 1;
radio
单选组的第二个元素为当前选中值
$('input[name=items]').get(1).checked = true;
七、获取值:
文本框,文本区域:$("#txt").attr("value");
多选框 checkbox
:$("#checkbox_id").attr("value");
单选组radio
: $("input[type=radio][checked]").val();
下拉框select
: $('#sel').val();
八、控制表单元素:
文本框,文本区域:
$("#txt").attr("value",'');//清空内容
$("#txt").attr("value",'11');//填充内容
多选框checkbox
:
$("#chk1").attr("checked",'');//不打勾
$("#chk2").attr("checked",true);//打勾
if($("#chk1").attr('checked')==undefined) //判断是否已经打勾
单选组 radio
:
$("input[type=radio]").attr("checked",'2');//设置value=2的项目为当前选中项
下拉框 select
:
$("#sel").attr("value",'-sel3');//设置value=-sel3的项目为当前选中项
$("<option value='1'>1111</option><option value='2'>2222</option>").appendTo("#sel")//添加下拉框的option
$("#sel").empty();//清空下拉框
注意点
select
option
如果里面不写value
值,默认提交<option></option>
中间的值。
切记:真正提交的值是在value
属性里面,option
之间只是按钮文字而已