纯原生JavaScript代码 无需任何库
整理后 可以直接拿来用的代码
<input type='checkbox' name='cateid[]'> <input type='checkbox' name='cateid[]'> <input type='checkbox' name='cateid[]'> <input type='checkbox' name='cateid[]'> <script>/*使checkbox可以按shift多选的js代码*/ var cbx_bin=-1;var cbx_end=0;var shiftdown=0; var checkboxArr=document.querySelectorAll("[type='checkbox']"); for (i=0; i<checkboxArr.length; i++){checkboxArr[i].setAttribute('index',i); checkboxArr[i].style="width:18px;height:18px;cursor:pointer;";/*顺便调了下样式 可以去掉*/ checkboxArr[i].onclick=function(){if (this.checked==true){ if(shiftdown==0){cbx_bin=Number(this.getAttribute('index'));}else{cbx_end=Number(this.getAttribute('index')); if(shiftdown==1){if(cbx_bin>cbx_end){cbx_ls=cbx_end;cbx_end=cbx_bin;cbx_bin=cbx_ls}for (ii=0; ii<checkboxArr.length; ii++){ if(ii>=cbx_bin && ii<=cbx_end){checkboxArr[ii].checked=true}}}}}} checkboxArr[i].onkeydown=function(ev){if(ev.key=="Shift"){shiftdown=1;}} checkboxArr[i].onkeyup=function(ev){if(ev.key=="Shift"){shiftdown=0;}} } </script>
整理前带注释的代码
<input class='cateid' type='checkbox' name='cateid[]'> <input class='cateid' type='checkbox' name='cateid[]'> <input class='cateid' type='checkbox' name='cateid[]'> <input class='cateid' type='checkbox' name='cateid[]'> <script> var cbx_bin=-1; var cbx_end=0; var shiftdown=0; var checkboxArr=document.querySelectorAll("[type='checkbox']");//把checkbox全都放到数组中 选择器可以按需修改 不改也不影响使用 for (i=0; i<checkboxArr.length; i++){ checkboxArr[i].setAttribute('index',i);/*设置自定义属性,方便下面读取索引*/ checkboxArr[i].style="width:18px;height:18px;cursor:pointer;";//顺便调整下大小 原本的有点小 checkboxArr[i].onclick=function(){ if (this.checked==true){//只处理选中状态 console.log("shift状态"+shiftdown); if(shiftdown==0){//如果还没按shift 就标记当前索引 为开始 cbx_bin=Number(this.getAttribute('index')); }else{ //否则 就标记当前索引为结束 cbx_end=Number(this.getAttribute('index')); /*开始和结束有了 数组也有了 就好办了*/ if(shiftdown==1){ if(cbx_bin>cbx_end){cbx_ls=cbx_end;cbx_end=cbx_bin;cbx_bin=cbx_ls}//调整一下顺序 for (ii=0; ii<checkboxArr.length; ii++){ if(ii>=cbx_bin && ii<=cbx_end){ checkboxArr[ii].checked=true console.log("选中一个"); console.log(ii); }else{ console.log(ii,ii>=cbx_bin,ii<=cbx_end,cbx_bin,shiftdown,cbx_end,checkboxArr.length); } } } } } } checkboxArr[i].onkeydown=function(ev){/*当某键被按下*/ if(ev.key=="Shift"){ shiftdown=1; //标记为被按下 } } checkboxArr[i].onkeyup=function(ev){/*当某键被松开*/ if(ev.key=="Shift"){ shiftdown=0;//标记为被松开 } } } </script>
全选/反选代码
<input type='button' value='全选' onclick=\"for(item of document.querySelectorAll('[type=\'checkbox\']')){item.checked=!item.checked};this.value='反选'\" id='quanxuan'>
取所有被勾选的value值,并以","分割 组成一个字符串
ids=''; for(item of document.querySelectorAll('.idscheckbox')){/*这里的选择器按情况修改*/ item.checked==true?ids+=','+item.value:null; } if (ids.charAt(0)==","){ ids=ids.slice(1); }
相关推荐
Warning: Division by zero in /www/wwwroot/wowoboke.com/admin/lib_vive_function.php on line 69
html左右布局 原生javascript实现分割条 可拖动分隔条
利用浮动+margin实现 左右布局 并用js实现可拖动分隔条 并用cookies记住宽度代码:<style> body{margin:0px;padding:0px;} .body{he
array.pop()和 array.shift()用法 javascript 数组删除成员方法:Array.pop() //移除数组中的最后一个元素并返回该元素。如果数组为空 则返回undefined Array.shift() //移除数组中的第一个元素并返回该元素例子:<scri
html中select option原生javascript按照value值 或 按照文本 选择指定选项function select_value(id,value){//按照option的值来选择 selectdom=document.getElementById(id); option=sele
原生js,原生javascript写的开关按钮<style> td,table{border:1px solid #323841;} </style> <form method="get" act
xmlhttprequest:原生javascript的ajax 发送Get请求 和 post请求get请求function zhankai(id){/*函数:展开某个分类*/ var httpRequest = new XMLHttpRequest () ; httpRequest.open
style对象全部属性fontFamilyfontStylefontVariantfontWeightfontSizefontcolorbackgroundbackgroundColorbackgroundImagebac
javascript 解析json解析 遍历代码:obj=JSON.parse('{"id":"8","home":"beijing","uid&
javascript array数组对象Array 对象所有属性:constructor 属性|length 属性|prototype 属性所有方法concat() 方法合并多个数组,返回一个新数组join() 方法将数组合并为字符串,用指
javascript constructor 属性constructor 属性表示创建对象的函数。object.constructor必需的 object是对象或函数的名称。说明constructor 属性是所有具有 prototype 的对象的成员
javascript设置网页 cookies和取cookies//取cookies function getCookieByName(name){ for(item of document.cookie.split(';')){ if(it