jquery实现 点击复选框,勾选所有复选框,再次点击取消勾选,这个功能怎么实现?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery实现 点击复选框,勾选所有复选框,再次点击取消勾选,这个功能怎么实现?相关的知识,希望对你有一定的参考价值。
如图所示,点击第一列的checkbox,那下面所有行的checkbox变成勾选,再次点击第一列checkbox,下面的所有行的checkbox变成非勾选状态,这个用jquery 怎么实现?
<script type="text/javascript" src="jquery.js"></script><script language="javascript" type="text/javascript">
$(function ()
$("#selectAll").click(function () //全选
if($("#playList :checkbox").attr("checked") == true)
$("#playList :checkbox").attr("checked", false);
else
$("#playList :checkbox").attr("checked", true);
);
$("#unSelect").click(function () //全不选
$("#playList :checkbox").attr("checked", false);
);
$("#reverse").click(function () //反选
$("#playList :checkbox").each(function ()
$(this).attr("checked", !$(this).attr("checked"));
);
);
);
</script>
<div id="playList">
<input type="checkbox" value="歌曲1" />歌曲1<br />
<input type="checkbox" value="歌曲2" />歌曲2<br />
<input type="checkbox" value="歌曲3" />歌曲3<br />
<input type="checkbox" value="歌曲4" />歌曲4<br />
<input type="checkbox" value="歌曲5" />歌曲5<br />
<input type="checkbox" value="歌曲6" />歌曲6
</div>
<input type="button" value="全选" id="selectAll" />
<input type="button" value="全不选" id="unSelect" />
<input type="button" value="反选" id="reverse" /> 参考技术A $("table :checkbox:first").change(function()
$(this).closest("table")
.find(":checkbox:not(:first)")
.prop("checked", this.checked);
); 参考技术B
jquery实现checkbox全选最简写法
<html><head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
<script type="text/javascript">
$(function()
$('#selectAll').click(function()
$('input[type=checkbox]').attr('checked', $(this).attr('checked'));
);
);
</script>
</head>
<body>
<input type="checkbox" id="selectAll" />全选<br/>
<input type="checkbox" /><br/>
<input type="checkbox" /><br/>
<input type="checkbox" /><br/>
<input type="checkbox" /><br/>
<input type="checkbox" /><br/>
<input type="checkbox" /><br/>
</body>
</html> 参考技术C 全选/反选 checkbox 的 id = 'all'
其他checkbox的name=‘check’
$("#all").click(function()
if($("#all").attr("checked") == "checked")
$("input[name='check']").attr("checked","checked");
else
$("input[name='check']").removeAttr("checked","checked");
);本回答被提问者采纳
jquery勾选复选框IE问题
【中文标题】jquery勾选复选框IE问题【英文标题】:jquery checked checkbox IE problem 【发布时间】:2011-02-01 06:59:56 【问题描述】:我在验证是否在 Internet Explorer 上使用 jquery 选中了复选框时遇到问题。 这是我正在使用的代码:
if ($('#chkjq_1').attr('checked') == true)
它在 Firefox 或 Chrome 上运行良好,但在 Internet Explorer 7 上,条件始终为 false,因为浏览器以这种方式设置属性:
<input id="chkjq_1" type="checkbox" CHECKED/> IE7
正确的方法如下:(Firefox,Chrome):
<input id="chkjq_1" type="checkbox" checked="checked"/> FF, Chrome, etc
我应该怎么做才能避免在 Internet Explorer 7 上出现这个问题; jquery 中有没有通用的方法来解决这个问题?
提前致谢。
【问题讨论】:
你用的是什么版本的jQuery? 见***.com/questions/901712/… 什么负责生成输入标签?这是一个 ASP.NET 服务器控件还是类似的东西?最好关注为什么标签渲染不正确,看看你是否可以解决这个问题;那么 jQuery 应该就可以工作了。 lidermin,你的意思是jquery UI 1.7.2,需要jquery 1.3+才能运行;无论如何,您的答案是使用任何 jquery 1.0+ 对不起,你是对的,我的意思是 jquery 1.3.2。 【参考方案1】:试试这个:
if ($('#chkjq_1').is(':checked'))
// more code
【讨论】:
它也适用于我。如果我的 'CHECKED' 在 IE9 中不起作用,我将其更改为 'checked' 并且可以工作。【参考方案2】:我唯一能坚持工作的就是这样测试:
if ($('#chkjq_1').is('[CHECKED]'))
当你打开开发者工具时,像 IE 一样在选择器上使用全部大写来呈现它。据我所知,可以跨浏览器工作。 .is(':checked') 不适合我(使用 JQuery 1.7.1)。在多种模式下使用 IE 7 和 IE 8 进行了测试。其他浏览器(Firefox、Safari 测试)似乎并不在意。
【讨论】:
这会测试选中的属性是否存在。但是在 Firefox 中,如果我取消选中一个复选框,is('CHECKED') 仍然是 true。 那是因为你需要is(':CHECKED')【参考方案3】:IE中复选框的“更改”事件被奇怪地触发了。
这可以解决为:- 1.) 将输入复选框的 onclick 事件绑定到要触发的所需目标函数 2.) 在目标函数中,通过勾选“checked”属性来检查复选框的状态-
if ($('#chkBox').attr("checked") == "checked")
// do something ----or .attr("checked", "checked"); ---for another checkbox
else
// do something else ----or .removeAttr("checked"); ---for another checkbox
【讨论】:
以上是关于jquery实现 点击复选框,勾选所有复选框,再次点击取消勾选,这个功能怎么实现?的主要内容,如果未能解决你的问题,请参考以下文章