首页 > 编程 > JavaScript > 正文

javascript实现Email邮件显示与删除功能

2019-11-20 11:13:05
字体:
来源:转载
供稿:网友

一、主要介绍:
这题采用之前的技术,根据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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表