一、主要介绍:
这题采用之前的技术,根据table的rows属性,获得数组,然后对数组设置样式,所以颜色就出来了。
1).全选复选框,通过var nodess=document.getElementsByName("mail");
for(var x=0;x<nodess.length;x++){ nodess[x].checked=nodes.checked; }
复选框函数进行
2).按钮全选,反选,和取消全选,可以用一个函数写,传入不同的参数AllBybtn(num)类型即可
函数里面 根据js的特性 非0 和 0 这两种状态,进行设置,为了同步,需要分别进行设置
3).为了显示出当全部选中就默认全选的复选框选中,所以需要对每一个复选框进行设置,采用函数checkBysingle()进行设置
4).删除所选项是需要主要,当前的是checkbox对象,上一级是td--tr--先拿到tr对象,然后对通过tr的父节点删除tr对象再删除之后,x会变化,可能有些删不到,所以需要将X的值还原,或者从后面开始删除。
2、样式设置:
<style type="text/css"> .one{ background-color:#00ff80; } .two{ background-color:#80ff00; } .three{ background-color:#0000ff; } table th{ background-color:#c0c0c0; } table{ width:400px; border:solid 1px; } table tr{ height:50px; } </style>
三、背景颜色以及鼠标移动的事件设置
function toaddcolor(){ //颜色设置, var nodes = document.getElementById("tabid"); var rows1 = nodes.rows; for (var x = 1; x < rows1.length; x++) { if (x % 2 == 0) { rows1[x].className = "one"; } else { rows1[x].className = "two"; } } } function addEvent(){ var name; //当鼠标移上去之后发生相应的变化 var nodes=document.getElementById("tabid"); var rows1=nodes.rows; for (var x = 1; x < rows1.length; x++) { rows1[x].onmouseover = function(){ name = this.className; this.className = "three"; } rows1[x].onmouseout = function(){ this.className = name; } // alert("bb"); // alert(rows1[x].getElementsByTagName("input")[0].nodeName); rows1[x].getElementsByTagName("input")[0].onclick=function(){//每一行的input对象 document.getElementsByName("allItem")[0].indeterminate=true;//让全选的复选框形状发生变化 } } } onload=function(){//在网页加载时候调用 toaddcolor(); addEvent(); }
四、复选框的全选
function allcheck(nodes){//全选checkbox的点击调用这个 var nodess=document.getElementsByName("mail"); for(var x=0;x<nodess.length;x++){ nodess[x].checked=nodes.checked; } //多个全选的时候,必须和其他的一个一样 var nodes1=document.getElementsByName("allItem"); for(var x=0;x<nodes1.length;x++){ nodes1[x].checked=nodes.checked; } }
五、按钮的全选
function AllBybtn(num){//全选按钮设置 var nodess = document.getElementsByName("mail"); /*多重for 循环不太好,可以根据js里面的特性0 非0 for (var x = 0; x < nodess.length; x++) { if (num == 1) { nodess[x].checked = 1; }else if (num == 2) { nodess[x].checked = !nodess[x].checked; }else if (num == 3) { nodess[x].checked = false; } }*/ for(var x=0;x<nodess.length;x++){ if(num<2){ nodess[x].checked=num; //让全选的复选框可以 单独写个函数 var all=document.getElementsByName("allItem"); for(var y=0;y<all.length;y++){ if(num==1){ all[y].checked=num; }else{ all[y].checked=num; } } }else{ nodess[x].checked=!nodess[x].checked; var all=document.getElementsByName("allItem"); for (var y = 0; y < all.length; y++) { all[y].checked=0; }}}}
六、所有项目都选中之后全选自动选中
function checkBysingle(){//全部入选之后,全选的自动选中 var flag = true; var node = document.getElementsByName("mail"); for (var x = 0; x < node.length; x++) { if (node[x].checked == false) { flag = false; break; } } var all = document.getElementsByName("allItem"); for (var y = 0; y < all.length; y++) { if (flag) { all[y].checked = true; } else { all[y].checked = false; }}}
七、删除邮件的函数(删除行)
function DelBybtn(){//删除行 var tdnode=document.getElementsByName("mail"); /*for(var x=0;x<tdnode.length;x++){ if(tdnode[x].checked){//对象是 checkbox 我们必须要那父级的父级 《tr》,我们需要移除的就是tr对象 var trnode=tdnode[x].parentNode.parentNode;//tr对象 trnode.parentNode.removeChild(trnode);//table对象移除tr对象 // alert("aa"); //节点容器跟Java当中的集合一样,只要是remove(),长度就会变的。这里,需要进行x的复位 x--; }*/ for(var x=tdnode.length-1;x>=0;x--){ if(tdnode[x].checked){//对象是 checkbox 我们必须要那父级的父级 《tr》,我们需要移除的就是tr对象 var trnode=tdnode[x].parentNode.parentNode;//tr对象 trnode.parentNode.removeChild(trnode);//table对象移除tr对象 } loading();//调用颜色的设置 } }
现象一:
反选效果:
删除前:
删除后:
完整代码:
<!DOCTYPE html> <html> <head> <!-- 这题采用之前的技术,根据table的rows属性,获得数组,然后对数组设置样式,所以颜色就出来了 1,全选复选框,通过var nodess=document.getElementsByName("mail"); for(var x=0;x<nodess.length;x++){ nodess[x].checked=nodes.checked; } 复选框函数进行 2,按钮全选,反选,和取消全选,可以用一个函数写,传入不同的参数AllBybtn(num)类型即可 函数里面 根据js的特性 非0 和 0 这两种状态,进行设置,为了同步,需要分别进行设置 3,为了显示出当全部选中就默认全选的复选框选中,所以需要对每一个复选框进行设置,采用函数checkBysingle()进行设置 4,删除所选项是需要主要,当前的是checkbox对象,上一级是td--tr--先拿到tr对象,然后对通过tr的父节点删除tr对象 再删除之后,x会变化,可能有些删不到,所以需要将X的值还原,或者从后面开始删除 --> <title>Mail.html</title> <style type="text/css"> .one{ background-color:#00ff80; } .two{ background-color:#80ff00; } .three{ background-color:#0000ff; } table th{ background-color:#c0c0c0; } table{ width:400px; border:solid 1px; } table tr{ height:50px; } </style> <script type="text/javascript"> var name; function toaddcolor(){ //颜色设置, var nodes = document.getElementById("tabid"); var rows1 = nodes.rows; for (var x = 1; x < rows1.length; x++) { if (x % 2 == 0) { rows1[x].className = "one"; } else { rows1[x].className = "two"; } } } function addEvent(){ var name; //当鼠标移上去之后发生相应的变化 var nodes=document.getElementById("tabid"); var rows1=nodes.rows; for (var x = 1; x < rows1.length; x++) { rows1[x].onmouseover = function(){ name = this.className; this.className = "three"; } rows1[x].onmouseout = function(){ this.className = name; } // alert("bb"); // alert(rows1[x].getElementsByTagName("input")[0].nodeName); rows1[x].getElementsByTagName("input")[0].onclick=function(){//每一行的input对象 document.getElementsByName("allItem")[0].indeterminate=true;//让全选的复选框形状发生变化 } } } onload=function(){//在网页加载时候调用 toaddcolor(); addEvent(); } function allcheck(nodes){//全选checkbox的点击调用这个 var nodess=document.getElementsByName("mail"); for(var x=0;x<nodess.length;x++){ nodess[x].checked=nodes.checked; } //多个全选的时候,必须和其他的一个一样 var nodes1=document.getElementsByName("allItem"); for(var x=0;x<nodes1.length;x++){ nodes1[x].checked=nodes.checked; } } function AllBybtn(num){//全选按钮设置 var nodess = document.getElementsByName("mail"); /*多重for 循环不太好,可以根据js里面的特性0 非0 for (var x = 0; x < nodess.length; x++) { if (num == 1) { nodess[x].checked = 1; }else if (num == 2) { nodess[x].checked = !nodess[x].checked; }else if (num == 3) { nodess[x].checked = false; } }*/ for(var x=0;x<nodess.length;x++){ if(num<2){ nodess[x].checked=num; //让全选的复选框可以 单独写个函数 var all=document.getElementsByName("allItem"); for(var y=0;y<all.length;y++){ if(num==1){ all[y].checked=num; }else{ all[y].checked=num; } } }else{ nodess[x].checked=!nodess[x].checked; var all=document.getElementsByName("allItem"); for (var y = 0; y < all.length; y++) { all[y].checked=0; } } } } function checkBysingle(){//全部入选之后,全选的自动选中 var flag = true; var node = document.getElementsByName("mail"); for (var x = 0; x < node.length; x++) { if (node[x].checked == false) { flag = false; break; } } var all = document.getElementsByName("allItem"); for (var y = 0; y < all.length; y++) { if (flag) { all[y].checked = true; } else { all[y].checked = false; }}} function DelBybtn(){//删除行 var tdnode=document.getElementsByName("mail"); /*for(var x=0;x<tdnode.length;x++){ if(tdnode[x].checked){//对象是 checkbox 我们必须要那父级的父级 《tr》,我们需要移除的就是tr对象 var trnode=tdnode[x].parentNode.parentNode;//tr对象 trnode.parentNode.removeChild(trnode);//table对象移除tr对象 // alert("aa"); //节点容器跟Java当中的集合一样,只要是remove(),长度就会变的。这里,需要进行x的复位 x--; }*/ for(var x=tdnode.length-1;x>=0;x--){ if(tdnode[x].checked){//对象是 checkbox 我们必须要那父级的父级 《tr》,我们需要移除的就是tr对象 var trnode=tdnode[x].parentNode.parentNode;//tr对象 trnode.parentNode.removeChild(trnode);//table对象移除tr对象 } toaddcolor(); addEvent(); } } </script> </head> <body> <table id="tabid"> <tr> <th><input type="checkbox" name="allItem" onclick="allcheck(this)"/> 全选 </th> <th>发件人</th> <th>邮件标题</th> <th>邮件附属信息</th></tr> <tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>张三</td> <td>国庆祝福</td> <td>邮件附属信息1....</td></tr> <tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>Jack</td> <td>假期堵车</td> <td>邮件附属信息2....</td></tr> <tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>Jack</td> <td>假期堵车</td> <td>邮件附属信息3....</td></tr> <tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>Jack</td> <td>假期堵车</td> <td>邮件附属信息4....</td></tr> <tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>Jack</td> <td>假期堵车</td> <td>邮件附属信息5....</td></tr> <tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>Tom</td> <td>一些广告</td> <td>邮件附属信息6....</td></tr> <tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>Tom</td> <td>一些广告</td> <td>邮件附属信息6....</td></tr> <tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>Tom</td> <td>一些广告</td> <td>邮件附属信息6....</td></tr> <tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>Tom</td> <td>一些广告</td> <td>邮件附属信息6....</td></tr> <tr><td><input type="checkbox" name="allItem" onclick="allcheck(this)">全选</td> <td colspan=3><input type="button" value="全选" name="btn1" onclick="AllBybtn(1)" /> <input type="button" value="反选" name="btn2" onclick="AllBybtn(2)"/> <input type="button" value="取消全选" name="btn3" onclick="AllBybtn(0)"/> <input type="button" value="删除所选项" name="btn4" onclick="DelBybtn()"/> </td> </tr> </table> </body> </html>
希望本文所述对大家学习javascript程序设计有所帮助。

JavaScript字符串替换方法详解及常见问题解答 本文将探讨两种在JavaScript中替换字符串字符的方法:在JavaScript代码内部替换和在网页HTML内部替换。 在JavaScript代码内部替换字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 该方法仅替换第一个匹配项。要替换所有匹配项,需使用正则表达式并添加全局标志g: str = str.replace(/fi

本教程向您展示了如何将自定义的Google搜索API集成到您的博客或网站中,提供了比标准WordPress主题搜索功能更精致的搜索体验。 令人惊讶的是简单!您将能够将搜索限制为Y

因此,在这里,您准备好了解所有称为Ajax的东西。但是,到底是什么? AJAX一词是指用于创建动态,交互式Web内容的一系列宽松的技术。 Ajax一词,最初由Jesse J创造

本文系列在2017年中期进行了最新信息和新示例。 在此JSON示例中,我们将研究如何使用JSON格式将简单值存储在文件中。 使用键值对符号,我们可以存储任何类型的

利用轻松的网页布局:8个基本插件 jQuery大大简化了网页布局。 本文重点介绍了简化该过程的八个功能强大的JQuery插件,对于手动网站创建特别有用

核心要点 JavaScript 中的 this 通常指代“拥有”该方法的对象,但具体取决于函数的调用方式。 没有当前对象时,this 指代全局对象。在 Web 浏览器中,它由 window 表示。 调用函数时,this 保持全局对象;但调用对象构造函数或其任何方法时,this 指代对象的实例。 可以使用 call()、apply() 和 bind() 等方法更改 this 的上下文。这些方法使用给定的 this 值和参数调用函数。 JavaScript 是一门优秀的编程语言。几年前,这句话可

jQuery是一个很棒的JavaScript框架。但是,与任何图书馆一样,有时有必要在引擎盖下发现发生了什么。也许是因为您正在追踪一个错误,或者只是对jQuery如何实现特定UI感到好奇

该帖子编写了有用的作弊表,参考指南,快速食谱以及用于Android,BlackBerry和iPhone应用程序开发的代码片段。 没有开发人员应该没有他们! 触摸手势参考指南(PDF) Desig的宝贵资源


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver CS6
视觉化网页开发工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境