分别用js和jq实现百度全选反选效果
js实现过程
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <style>
- li {
- height: 30px;
- line-height:30px;
- list-style: none;
- font-size: 24px;
- }
- .b1 {
- background: #CCCCCC;
- }
- .b2 {
- background: yellow;
- }
- .b3 {
- background: orange;
- }
- .b4 {
- background: red;
- }
- </style>
- <script>
- /*
- * 当鼠标移入li的时候
- * 当前li对应的checkbox是否是选中的
- * 是:li的className = 'b4'
- * 否:li的className = 'b3'
- * 当鼠标移出li的时候
- * 当前li对应的checkbox是否是选中的
- * 是:li的className = 'b4'
- * 否:li的className = 原来隔行变色的时候设置的class
- * */
- window.onload = function() {
- var ul1 = document.getElementById('ul1');
- var lis = document.querySelectorAll('li');
- var checkBoxes = ul1.querySelectorAll('input');
- var checkAll = document.getElementById('checkAll');
- //给每一个li添加不同的样式
- for (var i=0; i<lis.length; i++) {
- lis[i].index = i;
- checkBoxes[i].index = i;
- //通过i%2判断i是奇数还是偶数
- if ( i % 2 == 0 ) {
- lis[i].className = 'b1';
- lis[i].bc = 'b1';
- } else {
- lis[i].className = 'b2';
- lis[i].bc = 'b2';
- }
- //当鼠标移入的时候
- lis[i].onmouseover = function() {
- if ( checkBoxes[this.index].checked == true ) {
- this.className = 'b4';
- } else {
- this.className = 'b3';
- }
- }
- //当鼠标移出的时候
- lis[i].onmouseout = function() {
- if ( checkBoxes[this.index].checked == true ) {
- this.className = 'b4';
- } else {
- this.className = this.bc;
- }
- }
- checkBoxes[i].onclick = function() {
- if ( this.checked == true ) {
- lis[this.index].className = 'b4';
- }
- var isCheckedAll = true;
- for (var i=0; i<checkBoxes.length; i++) {
- //console.log(checkBoxes[i].checked)
- if (checkBoxes[i].checked == false) {
- isCheckedAll = false;
- }
- }
- console.log(isCheckedAll)
- checkAll.checked = isCheckedAll;
- }
- }
- //全选
- checkAll.onclick = function() {
- for (var i=0; i<checkBoxes.length; i++) {
- checkBoxes[i].checked = this.checked;
- if (this.checked) {
- lis[i].className = 'b4';
- } else {
- lis[i].className = lis[i].bc;
- }
- }
- }
- }
- </script>
- </head>
- <body>
- <div id="ul1">
- <li><input type="checkbox"> javascript</li>
- <li><input type="checkbox"> html</li>
- <li><input type="checkbox"> css</li>
- <li><input type="checkbox"> html5</li>
- <li><input type="checkbox"> css3</li>
- <li><input type="checkbox"> nodejs</li>
- </div>
- <input type="checkbox" id="checkAll">全选
- </body>
- </html>
jq的写法:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <script type="text/javascript" src="http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></script>
- <script type="text/javascript">
- //高版本的jq库有个bug。低版本的jq中是可以的
- $(function(){
- var chkAll = $('#chkAll');
- var chkNone = $('#chkNone');
- var chkReverse = $('#chkReverse');
- var checkbox = $('#checkbox>:checkbox');
- console.log(checkbox);
- chkAll.click(function(){
- //checkbox.attr('checked','checked');
- checkbox.attr('checked',true);
- });
- chkNone.click(function(){
- //checkbox.removeAttr('checked');
- checkbox.attr('checked',false);
- });
- chkReverse.click(function(){
- checkbox.each(function(){
- $(this).attr('checked',!$(this).attr('checked'));
- });
- });
- });
- </script>
- </head>
- <body>
- <div id="checkbox">
- <input type="checkbox" name="" id="" checked="checked">吃
- <input type="checkbox" name="" id="">喝
- <input type="checkbox" name="" id="">玩
- <input type="checkbox" name="" id="">乐
- <input type="checkbox" name="" id="">打豆豆
- </div>
- <div id="btn">
- <input type="button" id="chkAll" value="全选">
- <input type="button" id="chkNone" value="全不选">
- <input type="button" id="chkReverse" value="反选">
- </div>
- </body>
- </html>
分别用js和jq实现百度全选反选效果的更多相关文章
- Jquery 1.8全选反选删除选中项实现
JQuery1.6以后,Prop的出现,让1.6以下的全选反选效果全部失效了.以下是修正后的版本: 全选反选效果: $(".checkbox").click(function () ...
- js和jq实现全选反选
在前端中用到全选反选的案例并不少,在这里呢我就实现这个功能给大家参考参考. 这里呢就先贴上我的html和css代码 <div class="wrap"> <tab ...
- 基于JQ的多选/全选/反选及获取选中的值
<!-- author:青芒 --> <!DOCTYPE html> <html lang="en"> <head> <met ...
- jquery、js操作checkbox全选反选
全选反选checkbox在实际应用中比较常见,本文有个不错的示例,大家可以参考下 操作checkbox,全选反选//全选 function checkAll() { $('input[name=&qu ...
- jquery、js全选反选checkbox
操作checkbox,全选反选 //全选 function checkAll() { $('input[name="TheID"]').attr("checked&quo ...
- JS全选反选功能
总选框:<input type="checkbox" class="all" name="all"> 子选框: <inpu ...
- js全选 反选
// 全选 反选 allChoose: function (o) { var obj = $.extend(true, { id: "#id", name: "name& ...
- jQuery之标签操作和返回顶部、登录验证、全选反选、克隆示例
一.样式操作 1.JQ中的样式类 somenode.addClass();// 添加指定的CSS类名. somenode.removeClass();// 移除指定的CSS类名. somenode.h ...
- jQuery全选/反选checkbox
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- Intent的介绍
一.Intent的介绍 Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作 的动作.动作涉及数据.附加数据进行描 ...
- 利用C语言结构体模拟一个简单的JavaBean
利用C语言模拟一个Javabean 仅封装了,“无参构造函数”,“带参构造函数”,"toString方法" #include <stdio.h> struct User ...
- 关于Ajax的实现
AJAX:Asynchronous Javascript And XML.异步的JavaScript和XML. 同步请求: 异步请求: 1.1.1 XMLHttpRequest对象的介绍: 方法 ...
- hdu 1095 A+B for Input-Output Practice (VII)
A+B for Input-Output Practice (VII) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32 ...
- 总结html5-canvas学习笔记
canvas是html5中很重要的一部分,我们可以用它来绘制各种平面图形, 3d图,动画等等.每每看到网上超炫的html5页面,首先立马下载下来,心里想着有一天自己也可以做出这样酷炫的效果,骚年你是不 ...
- c# 远程监控(1) 大纲
此篇文章主要讲了如何使用C# Winform程序模拟一个远程监控系统,并使用RTP实时传输协议传输数据. 应用场景:远程监控.局域网视频会议.客户端流式缓冲播放 这方面的资料还是有一些,但是都需要整合 ...
- Unity3D 之射线检测
这里来记录下射线检测的相关内容: 射线检测故名就是通过射线去检测是否和碰撞器产生了交集,和碰撞器与碰撞器发生交集一样,会返回一个真. 射线的用法很多:比如检测是否跳跃,通过向地面投射射线控制在地面时候 ...
- seaJs 使用
开始使用seajs的时候折磨了我好一阵.光是各种概念就让新手难理解.现在弄清楚了,上个实践以备忘.目录结构如图. 1.文件 sea.html main.js a.js b.js c.js 最 ...
- Colored Linux Man pages
Colored Linux Man pages 一.什么是Linux Man 参考: 二.如何高效率地使用Man 三.给Linux Man命令添加点颜色. 1.Unix / Linux: Displa ...
- C++ 代码性能优化 -- 循环分割提高并行性
对于一个可结合和可交换的合并操作来说,比如整数的加法或乘法, 我们可以通过将一组合并操作分割成 2 个或更多的部分,并在最后合并结果来提高性能. 原理: 普通代码只能利用 CPU 的一个寄存器,分割后 ...