JQ实现checkbox全选中以及获得选中的checkbox的值
前端
$('#this').attr('checked'); 返回的是checked或者是undefined,不是原来的true和false了。解决方法:
上面写法是JQ1.6之前的版本。
JQ1.6之后或更高版本写法:
/获取是否选中
var isChecked = $('#cb').prop('checked');
//或
var isChecked = $('#cb').is(":checked");
//设置选中
$('#cb').prop('checked',true);
分析了其中的原因,可以这样理解:
JQ将“属性”与“特性”做了区别,属性指的是“name,id”等等,可用attr设置,特性指的是“selectedIndex, tagName, nodeName,checked”等等。
所以:JQ1.6之后,可以通过attr方法去获得属性,通过prop方法去获得特性
$("#cb").attr("value"); //获取属性,正确返回value 值
$("#cb").attr("checked"); //undefined
$("#cb").prop("checked"); //true or false
演示例子:
html代码:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Simple jsp page</title>
<script type="text/javascript" src="../js/jquery-1.3.2.js"></script>
<script type="text/javascript" src="../js/checkbox.js"></script>
</head>
<body>
<form action="#" method="post">
<input type="checkbox" id="select"/> 全选<br/>
<input type="checkbox" value="1" name="items"><br/>
<input type="checkbox" value="2" name="items"><br/>
<input type="checkbox" value="3" name="items"> <br/>
<input type="checkbox" value="4" name="items"> <br/>
<input type="checkbox" value="5" name="items"> <br/>
<input type="checkbox" value="6" name="items"> <br/>
<input type="checkbox" value="7" name="items"> <br/>
<input type="checkbox" value="8" name="items"> <br/>
<input type="checkbox" value="9" name="items"> <br/>
<input type="checkbox" value="10" name="items"> <br/>
<input type="checkbox" value="11" name="items"> <br/>
<input type="submit" id="submit" value="提交">
</form>
</body>
</html>
js代码:
$(function() {
$("#select").click(function() {
if ($(this).attr("checked")) {
$("input[name=items]").each(function() {
$(this).prop("checked", true);
});
} else {
$("input[name=items]").each(function() {
$(this).prop("checked", false);
});
}
});
//得到选中的值,ajax操作使用
$("#submit").click(function() {
var text="";
$("input[name=items]").each(function() {
if ($(this).prop("checked")) {
text += ","+$(this).val();
}
});
alert(text);
});
});
编辑:一起学习网