checkbox与jq<转>2

jQuery中attr()解决checked属性问题

作者:u012885111

这两天在做一个表单提交,其中就包含有checkbox的全选和反选,这是最先开始做出来的版本,代码如下:

<input id="checkAll" type="checkbox" />全选
<input name="subBox" type="checkbox" />Php
<input name="subBox" type="checkbox" />Java
<input name="subBox" type="checkbox" />NodeJS
<input name="subBox" type="checkbox" />Python

<script>
$(document).ready(function(){
	$("#checkAll").click(function() {
        //console.log($(this).attr("checked"));
        //console.log($(this).is(":checked"))
        if($(this).attr("checked")){
        	$(‘input[name="subBox"]‘).attr("checked",true);
        }else{
        	$(‘input[name="subBox"]‘).attr("checked",false);
        }
    });

});
</script>

点击发现一点反应也没有,到网上搜了一下,发现attr()获取到的值就没变过,而is(":checked")会随着点击变化,就把if条件修改成了if($(this).is(":checked")),发现终于可以了,全选可以,取消全选也可以,但又出现了一个新的问题,只能点击一次,点击一次之后就没有全选反选的效果了,太奇怪了,这什么问题!!!

再去搜,发现了一个的东西,prop()这个东东,原来jQuery自从1.6之后就有了它,attr()太混乱,为了区分,就出现了prop(),对于checked,若是prop()获取的则是浏览器对于当前变化着的值,即随着点击变化而变化,而attr()则是浏览器记录checked的初始值,即它的默认值,不会随着改变而改变,然后试了试新的方法,如下:

<script>
$(document).ready(function(){

    $("#checkAll").click(function() {
        if($(this).prop("checked")){
        	$(‘input[name="subBox"]‘).prop("checked",true);
        }else{
        	$(‘input[name="subBox"]‘).prop("checked",false);
        }
    });
    //or
    var isChecked = $(this).prop("checked");
    $("input[name=‘subBox‘]").prop("checked", isChecked);

});
</script>

然后你就可以随意的切换全选反选啦!

时间: 2024-12-18 13:16:17

checkbox与jq<转>2的相关文章

checkbox与jq&lt;转&gt;

题:经常使用jQuery插件的attr方法获取checked属性值,获取的值的大小为未定义,此时可以用prop方法获取其真实值,下面介绍这两种方法的区别: 1.通过prop方法获取checked属性,获取的checked返回值为boolean,选中为true,否则为flase 复制代码代码如下: <input type="checkbox" id="selectAll" onclick="checkAll()">全选 function

jQuery学习之属性

在学习jQuery之处,我们首先要掌握的知识点就是jQuery属性的使用方法,本文整理了一些jQuery常用的属性及其相关使用,一起来看看吧. 1. attr(name|properties|key,value|fn) : 设置或返回被选元素的属性值 ①获取属性 <img src="" alt="jQuery" /><script type="text/javascript"> $(function(){ console.

jQuery的属性

The Write Less , Do More ! jQuery的属性 1. attr(name|properties|key,value|fn) : 设置或返回被选元素的属性值 ①获取属性 <img src="" alt="jQuery" /> <script type="text/javascript"> $(function(){ console.log($("img").attr("

jq、js中判断checkbox是否选中

最近在开发项目时用到checkbox复选框,其中遇到一个问题:在JQ中如何判断checkbox是否被选中呢?之前用JQ获取元素的属性用的都是attr(),但用在checkbox上却没有用,原因何在??? 1.JS中判断checkbox是否被选中 对于在js中来判断checkbox是否被选中很简单,举个??来说 HTML代码: <input type="checkbox" name="box"> 相应的javascript代码如下: var check =

jq 判断多个 checkbox 选中

效果如下: html 代码: 1 <p>菜单:</p> 2 <div> 3 <input type="checkbox" name="menu" value="大盘鸡" />大盘鸡 4 <input type="checkbox" name="menu" value="红烧肉" />红烧肉 5 <input type=&q

JS、JQ中判断checkbox是否选中

HTML <input type="checkbox" class="checkbox" /> JS var check = document.getElementsByTagName('input')[0]; console.log(check.checked); JQ 1. $("input[type='checkbox']").is(':checked'); 2. $("input[type='checkbox']&q

[jQ]jQuery显式操作Checkbox,并用数组存储关联值的方案

------------------------------------------------------------------------------------------------------- /** * 显式选中清空Checkbox(jQuery代码) * @黑眼诗人 <www.chenwei.ws> */ var obj = $(':checkbox'); obj.on('click',function(){ oThis = $(this); if(oThis.attr('s

js 和 jq 控制 checkbox

判断checkbox是否选中  1. $("#id").attr("checked") 在jquery 1.6前(含1.6),返回值是boolean类型的true或false: 在jquery 1.6后,返回值是"checked"或undefined. 2. jquery 1.6后dom有变动 $("#id").prop("checked") 返回值是boolean类型的true或false: 3.$(&q

jQ无法设置checkbox变成选中状态

设置以后checkbox并没有变成选中状态,用chrome调试看了一下,checkbox中确实有checked属性,针对这个问题,大家可以参考下本文 代码如下: $("input").attr("checked","checked") 设置以后checkbox并没有变成选中状态,用chrome调试看了一下,checkbox中确实有checked属性,而且,值为checked,但是页面显示仍然为未选中状态 $("input").