javascript實(shí)現(xiàn)Email郵件顯示與刪除功能
一、主要介紹:
這題采用之前的技術(shù),根據(jù)table的rows屬性,獲得數(shù)組,然后對(duì)數(shù)組設(shè)置樣式,所以顏色就出來(lái)了。
1).全選復(fù)選框,通過(guò)var nodess=document.getElementsByName("mail");
for(var x=0;x<nodess.length;x++){
nodess[x].checked=nodes.checked;
}
復(fù)選框函數(shù)進(jìn)行
2).按鈕全選,反選,和取消全選,可以用一個(gè)函數(shù)寫,傳入不同的參數(shù)AllBybtn(num)類型即可
函數(shù)里面 根據(jù)js的特性 非0 和 0 這兩種狀態(tài),進(jìn)行設(shè)置,為了同步,需要分別進(jìn)行設(shè)置
3).為了顯示出當(dāng)全部選中就默認(rèn)全選的復(fù)選框選中,所以需要對(duì)每一個(gè)復(fù)選框進(jìn)行設(shè)置,采用函數(shù)checkBysingle()進(jìn)行設(shè)置
4).刪除所選項(xiàng)是需要主要,當(dāng)前的是checkbox對(duì)象,上一級(jí)是td--tr--先拿到tr對(duì)象,然后對(duì)通過(guò)tr的父節(jié)點(diǎn)刪除tr對(duì)象再刪除之后,x會(huì)變化,可能有些刪不到,所以需要將X的值還原,或者從后面開始刪除。

2、樣式設(shè)置:
<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>
三、背景顏色以及鼠標(biāo)移動(dòng)的事件設(shè)置
function toaddcolor(){
//顏色設(shè)置,
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;
//當(dāng)鼠標(biāo)移上去之后發(fā)生相應(yīng)的變化
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對(duì)象
document.getElementsByName("allItem")[0].indeterminate=true;//讓全選的復(fù)選框形狀發(fā)生變化
}
}
}
onload=function(){//在網(wǎng)頁(yè)加載時(shí)候調(diào)用
toaddcolor();
addEvent();
}
四、復(fù)選框的全選
function allcheck(nodes){//全選checkbox的點(diǎn)擊調(diào)用這個(gè)
var nodess=document.getElementsByName("mail");
for(var x=0;x<nodess.length;x++){
nodess[x].checked=nodes.checked;
}
//多個(gè)全選的時(shí)候,必須和其他的一個(gè)一樣
var nodes1=document.getElementsByName("allItem");
for(var x=0;x<nodes1.length;x++){
nodes1[x].checked=nodes.checked;
}
}
五、按鈕的全選
function AllBybtn(num){//全選按鈕設(shè)置
var nodess = document.getElementsByName("mail");
/*多重for 循環(huán)不太好,可以根據(jù)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;
//讓全選的復(fù)選框可以 單獨(dú)寫個(gè)函數(shù)
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;
}}}}
六、所有項(xiàng)目都選中之后全選自動(dòng)選中
function checkBysingle(){//全部入選之后,全選的自動(dòng)選中
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;
}}}
七、刪除郵件的函數(shù)(刪除行)
function DelBybtn(){//刪除行
var tdnode=document.getElementsByName("mail");
/*for(var x=0;x<tdnode.length;x++){
if(tdnode[x].checked){//對(duì)象是 checkbox 我們必須要那父級(jí)的父級(jí) 《tr》,我們需要移除的就是tr對(duì)象
var trnode=tdnode[x].parentNode.parentNode;//tr對(duì)象
trnode.parentNode.removeChild(trnode);//table對(duì)象移除tr對(duì)象
// alert("aa");
//節(jié)點(diǎn)容器跟Java當(dāng)中的集合一樣,只要是remove(),長(zhǎng)度就會(huì)變的。這里,需要進(jìn)行x的復(fù)位
x--;
}*/
for(var x=tdnode.length-1;x>=0;x--){
if(tdnode[x].checked){//對(duì)象是 checkbox 我們必須要那父級(jí)的父級(jí) 《tr》,我們需要移除的就是tr對(duì)象
var trnode=tdnode[x].parentNode.parentNode;//tr對(duì)象
trnode.parentNode.removeChild(trnode);//table對(duì)象移除tr對(duì)象
}
loading();//調(diào)用顏色的設(shè)置
}
}
現(xiàn)象一:

反選效果:

刪除前:

刪除后:

完整代碼:
<!DOCTYPE html>
<html>
<head>
<!--
這題采用之前的技術(shù),根據(jù)table的rows屬性,獲得數(shù)組,然后對(duì)數(shù)組設(shè)置樣式,所以顏色就出來(lái)了
1,全選復(fù)選框,通過(guò)var nodess=document.getElementsByName("mail");
for(var x=0;x<nodess.length;x++){
nodess[x].checked=nodes.checked;
}
復(fù)選框函數(shù)進(jìn)行
2,按鈕全選,反選,和取消全選,可以用一個(gè)函數(shù)寫,傳入不同的參數(shù)AllBybtn(num)類型即可
函數(shù)里面 根據(jù)js的特性 非0 和 0 這兩種狀態(tài),進(jìn)行設(shè)置,為了同步,需要分別進(jìn)行設(shè)置
3,為了顯示出當(dāng)全部選中就默認(rèn)全選的復(fù)選框選中,所以需要對(duì)每一個(gè)復(fù)選框進(jìn)行設(shè)置,采用函數(shù)checkBysingle()進(jìn)行設(shè)置
4,刪除所選項(xiàng)是需要主要,當(dāng)前的是checkbox對(duì)象,上一級(jí)是td--tr--先拿到tr對(duì)象,然后對(duì)通過(guò)tr的父節(jié)點(diǎn)刪除tr對(duì)象
再刪除之后,x會(huì)變化,可能有些刪不到,所以需要將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(){
//顏色設(shè)置,
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;
//當(dāng)鼠標(biāo)移上去之后發(fā)生相應(yīng)的變化
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對(duì)象
document.getElementsByName("allItem")[0].indeterminate=true;//讓全選的復(fù)選框形狀發(fā)生變化
}
}
}
onload=function(){//在網(wǎng)頁(yè)加載時(shí)候調(diào)用
toaddcolor();
addEvent();
}
function allcheck(nodes){//全選checkbox的點(diǎn)擊調(diào)用這個(gè)
var nodess=document.getElementsByName("mail");
for(var x=0;x<nodess.length;x++){
nodess[x].checked=nodes.checked;
}
//多個(gè)全選的時(shí)候,必須和其他的一個(gè)一樣
var nodes1=document.getElementsByName("allItem");
for(var x=0;x<nodes1.length;x++){
nodes1[x].checked=nodes.checked;
}
}
function AllBybtn(num){//全選按鈕設(shè)置
var nodess = document.getElementsByName("mail");
/*多重for 循環(huán)不太好,可以根據(jù)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;
//讓全選的復(fù)選框可以 單獨(dú)寫個(gè)函數(shù)
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(){//全部入選之后,全選的自動(dòng)選中
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){//對(duì)象是 checkbox 我們必須要那父級(jí)的父級(jí) 《tr》,我們需要移除的就是tr對(duì)象
var trnode=tdnode[x].parentNode.parentNode;//tr對(duì)象
trnode.parentNode.removeChild(trnode);//table對(duì)象移除tr對(duì)象
// alert("aa");
//節(jié)點(diǎn)容器跟Java當(dāng)中的集合一樣,只要是remove(),長(zhǎng)度就會(huì)變的。這里,需要進(jìn)行x的復(fù)位
x--;
}*/
for(var x=tdnode.length-1;x>=0;x--){
if(tdnode[x].checked){//對(duì)象是 checkbox 我們必須要那父級(jí)的父級(jí) 《tr》,我們需要移除的就是tr對(duì)象
var trnode=tdnode[x].parentNode.parentNode;//tr對(duì)象
trnode.parentNode.removeChild(trnode);//table對(duì)象移除tr對(duì)象
}
toaddcolor();
addEvent();
}
}
</script>
</head>
<body>
<table id="tabid">
<tr> <th><input type="checkbox" name="allItem" onclick="allcheck(this)"/> 全選 </th> <th>發(fā)件人</th> <th>郵件標(biāo)題</th> <th>郵件附屬信息</th></tr>
<tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>張三</td> <td>國(guó)慶祝福</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="刪除所選項(xiàng)" name="btn4" onclick="DelBybtn()"/>
</td>
</tr>
</table>
</body>
</html>
希望本文所述對(duì)大家學(xué)習(xí)javascript程序設(shè)計(jì)有所幫助。
- node.js使用nodemailer發(fā)送郵件實(shí)例
- Nodejs中讀取中文文件編碼問(wèn)題、發(fā)送郵件和定時(shí)任務(wù)實(shí)例
- 基于Node.js實(shí)現(xiàn)nodemailer郵件發(fā)送
- 純javascript實(shí)現(xiàn)自動(dòng)發(fā)送郵件
- js正則表達(dá)式驗(yàn)證郵件地址
- 用JS輸入email的代碼,以防垃圾郵件
- JS驗(yàn)證郵件地址格式方法小結(jié)
- 簡(jiǎn)單幾行JS Code實(shí)現(xiàn)IE郵件轉(zhuǎn)發(fā)新浪微博
- javascript驗(yàn)證郵件地址和MX記錄的方法
- 利用Node.JS實(shí)現(xiàn)郵件發(fā)送功能
相關(guān)文章
原生js+canvas實(shí)現(xiàn)驗(yàn)證碼
這篇文章主要為大家詳細(xì)介紹了原生js+canvas實(shí)現(xiàn)驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
innerHTML動(dòng)態(tài)添加html代碼和腳本兼容多個(gè)瀏覽器
innerHTML動(dòng)態(tài)添加html代碼和腳本,給某個(gè)元素的innerHTML賦值,并使得值中的js代碼有效且兼容多個(gè)瀏覽器,很棒的一個(gè)方法2014-10-10
HTML5基于Tomcat 7.0實(shí)現(xiàn)WebSocket連接并實(shí)現(xiàn)簡(jiǎn)單的實(shí)時(shí)聊天
WebSocket 是一種自然的全雙工、雙向、單套接字連接。這篇文章給大家介紹了HTML5基于Tomcat 7.0實(shí)現(xiàn)WebSocket連接并實(shí)現(xiàn)簡(jiǎn)單的實(shí)時(shí)聊天,感興趣的朋友一起學(xué)習(xí)吧2016-10-10
省市區(qū)三級(jí)聯(lián)動(dòng)下拉框菜單javascript版
這篇文章主要給大家介紹了javascript實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)下拉框菜單,有需要的朋友可以參考下2015-08-08

