精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用JavaScript 實現表格數據管理

開發 前端 數據管理
JavaScript 是一種由Netscape的LiveScript發展而來的原型化繼承的面向對象的動態類型的區分大小寫的客戶端腳本語言,本文主要介紹用JavaScript 實現了表格數據管理的以下幾個功能的具體辦法。

用JavaScript 實現了表格數據管理的以下幾個功能:

  • · 點擊添加按鈕可以添加一個空的可以修改的記錄。
  • · 點擊表格單元格可以修改文本。
  • · 修改后實現了保存的接口。
  • · 如果添加了新的記錄而未做任何修改值都為null,保存全部時將被忽略。
  • · 保存全部時只保存修改過的值,原有的數據不再重復保存。
  • · 刷新時如果數據未保存則提示保存。
  • · 點擊刪除時如果是臨時添加的無效數據則直接刪除,如果保存過的記錄則實現了記錄刪除的接口。

考慮到嵌套的比較多就沒有使用form表單,用JavaScript 直接解析dom來分離出了要傳遞的數據。

先看下運行的效果圖:

用js實現了表格數據管理

JavaScript 的代碼如下,其中注釋較多就不解釋了:

  1. var JCRUD=function(tb,colnum,saveAllBtn,add,ajaxSaver,allAjaxSaver,ajaxDeler){  
  2.     var del = tb.getElementsByTagName('a');  
  3.     var span = tb.getElementsByTagName('span');  
  4.     var ctr=[];/* 保存修改的tr對象 */ 
  5.     var delEvent = function(){  
  6.         var dder = this.parentNode.parentNode;  
  7.         this.data=[];  
  8.         for(var i=0; i<dder.children.length-1; i++)  
  9.             this.data[i] = dder.children[i].children[0].firstChild.nodeValue;  
  10.         var tag = 0;  
  11.         for(var j=0; j<this.data.length; j++){  
  12.             if(this.data[j]!=='null'){/* 如果修改了單元格的默認值,這里也做相應修改 */ 
  13.                 tag=1;  
  14.                 break;  
  15.             }  
  16.         }  
  17.         for(var k=0; k<ctr.length; k++) if(ctr[k]===dder) ctr.splice(k,1);  
  18.         dder.parentNode.removeChild(dder);  
  19.         if(tag==1) ajaxDeler.call(this);  
  20.     };  
  21.     var spanEvent = function(){/* 點擊生成修改框 */ 
  22.         var value = this.firstChild.nodeValue;  
  23.         var input = document.createElement('input');  
  24.         input.value = value;  
  25.         this.parentNode.appendChild(input);  
  26.         this.parentNode.removeChild(this);  
  27.         input.focus();  
  28.         input.onblur = function(){/* 失去焦點移除修改框 */ 
  29.             var span = document.createElement('span');  
  30.             span.appendChild(document.createTextNode(this.value?this.value:'null'));
  31. /* 如果修改了單元格的默認值,這里也做相應修改 */ 
  32.             span.onclick =spanEvent;  
  33.             this.parentNode.appendChild(span);  
  34.             this.parentNode.removeChild(this);  
  35.             if(value!=this.value){/* 如果內容改變生成保存按鈕 */ 
  36.                 var tr = span.parentNode.parentNode  
  37.                     tds = tr.children;  
  38.                     btns = tds[colnum-1].getElementsByTagName('a');  
  39.                 for(var i=0; i<btns.length; i++){  
  40.                     if(btns[i].firstChild.nodeValue!='保存'){  
  41.                         var saver = document.createElement('a');  
  42.                         saver.href="javascript:;";  
  43.                         saver.appendChild(document.createTextNode('保存'));  
  44.                     }else{  
  45.                         var saver = btns[i];  
  46.                     }  
  47.                 }  
  48.                 tds[tds.length-1].appendChild(saver);  
  49.                 var tag=0;  
  50.                 for(var k=0; k<ctr.length; k++)  
  51.                     if(ctr[k]===tr) tag=1;  
  52.                 if(tag==-0) ctr.push(tr);  
  53.                 saver.onclick=function(){/* 添加保存處理事件 */ 
  54.                     this.data = [];  
  55.                     for(var i=0; i<tds.length-1; i++)  
  56.                         this.data[i] = 
  57. this.parentNode.parentNode.children[i].children[0].firstChild.nodeValue;  
  58.                     ajaxSaver.call(this);  
  59.                     for(var i=ctr.length-1; i>=0; i--){  
  60.                         if(this.parentNode.parentNode===ctr[i]){  
  61.                             ctr.splice(i,1);  
  62.                         }  
  63.                     }  
  64.                     this.parentNode.removeChild(this);  
  65.                 };  
  66.             }  
  67.         }  
  68.     };  
  69.     for(var i in del) del[i].onclick = delEvent;
  70. /* 給現在有元素添加事件 */ 
  71.     for(var j in span) span[j].onclick = spanEvent;  
  72.     add.onclick = function(){  
  73.         var tbody = tb.children[0];  
  74.         var tr = document.createElement('tr');  
  75.         for(var j=0; j<colnum; j++){  
  76.             var td = document.createElement('td');  
  77.             if(j==(colnum-1)){  
  78.                 var del = document.createElement('a');  
  79.                 del.href='javascript:;';  
  80.                 del.appendChild(document.createTextNode('刪除'));  
  81.                 del.onclick = delEvent;/* 給新加元素添加事件 */ 
  82.                 td.appendChild(del);  
  83.             }else{  
  84.                 var span = document.createElement('span');  
  85.                 span.appendChild(document.createTextNode('null'));
  86. /* 如果在添加時修改默認值,在這里修改的 */ 
  87.                 td.appendChild(span);  
  88.                 span.onclick =spanEvent;  
  89.             }  
  90.             tr.appendChild(td);  
  91.         }  
  92.         tbody.appendChild(tr);  
  93.     };  
  94.     var getAllData = function(){/* 保存全部的數據解析 */ 
  95.         var allData=[];  
  96.         for(var i=0; i<ctr.length; i++){  
  97.             allData[i]=[];  
  98.             for(var j=0; j<ctr[i].children.length-1; j++)  
  99.                 allData[i].push(ctr[i].children[j].children[0].firstChild.nodeValue);  
  100.             ctr[i].children[colnum-1].removeChild(ctr[i].children[colnum-1].children[1]);  
  101.         }  
  102.         ctr=[];  
  103.         return allData;  
  104.     };  
  105.     saveAllBtn.onclick = function(){/* 添加保存全部數據保存事件 */ 
  106.         this.allData = getAllData();  
  107.         if(this.allData.length){  
  108.             allAjaxSaver.call(this);  
  109.         }else{  
  110.             alert('No data!');  
  111.         }  
  112.     };  
  113.     window.onbeforeunload = function(){/* 刷新提示保存數據 */ 
  114.         if(ctr.length){  
  115.             var y = confirm('數據還未保存,是否保存數據?')  
  116.             if(y){  
  117.                 saveAllBtn.click();  
  118.             }  
  119.         }  
  120.     };  
  121. }; 

調用時要傳幾個參數,有幾個參數為函數,每個參數都有注釋,調用代碼如下:

  1. var table = document.getElementById('tb'),/* 要操作的表格 */ 
  2.     colnum = 5,/* 這里修改表格的列數 */ 
  3.     saveAllBtn = document.getElementById('SaveAll'),/* 保存全部的按鈕 */ 
  4.     addBtn = document.getElementById('Add'),/* 添加的按鈕 */ 
  5.     saver = function(){  
  6.         /* 此處可以加上ajax效果與數據庫交互 data是個數組,需要可以改成JSON */ 
  7.         alert('要傳的數據為data數據:"'+this.data+'"此處調用ajax實現后臺保存!實現略……');  
  8.     },  
  9.     allSaver = function(){  
  10.         /* 此處可以加上ajax效果與數據庫交互 data是個數組,需要可以改成JSON */ 
  11.         alert('要傳的數據為allDtat數組:"'+this.allData+'"此處調用ajax實現后臺保存!實現略……');  
  12.     },  
  13.     deler = function(){  
  14.         /* 此處可以加上ajax效果與數據庫交互 data是個數組,需要可以改成JSON */ 
  15.         alert('要傳的數據為data數據:"'+this.data+'"此處調用ajax實現后臺刪除!實現略……');  
  16.     };  
  17. window.JCRUD(table,colnum,saveAllBtn,addBtn,saver,allSaver,deler); 

可以看出saver、allSaver、deler都是需要自己實現的,這與后臺的實現相關,與本例子也沒有主要關系也就不實現了,只把要傳的數據傳過來供使用。

原文鏈接:http://www.cnblogs.com/jaiho/archive/2011/02/20/table_manager.html

【編輯推薦】

  1. 黑客調查:***JavaScript庫是什么?
  2. JavaScript版幾種常見排序算法分享
  3. JavaScript對象及繼承教程之內置對象
  4. JavaScript內存回收機制深入解讀
  5. JavaScript懶加載技術(lazyload)簡單實現
責任編輯:陳貽新 來源: JaiHo的博客
相關推薦

2013-11-22 10:16:06

NetApp集群模式NetApp存儲

2017-10-12 14:54:52

2023-08-31 16:04:16

數據管理可持續發展

2023-04-28 07:34:35

數據管理數據資產管理

2021-04-19 10:38:31

數據管理數字化轉型CIO

2023-10-31 07:06:50

運營數據管理

2019-12-06 10:29:29

云原生數據公共云

2016-11-04 12:46:25

2017-01-05 18:35:57

數據管理數據治理

2013-10-31 09:19:42

混合云混合云數據管理Data

2022-05-29 22:56:13

數據安全元數據

2011-03-28 19:50:48

ibmdwDB2MDM

2024-06-21 14:21:11

2011-11-14 10:41:15

Winform數據管理模塊Items

2016-02-25 14:38:25

桌面云

2020-12-31 13:20:12

大數據人工智能

2023-06-20 09:50:05

大數據數據管理

2018-09-05 21:07:06

數據管理

2016-02-18 10:27:39

數據

2022-07-07 10:00:17

數據管理大數據
點贊
收藏

51CTO技術棧公眾號

国产成人综合亚洲91猫咪| 日韩免费视频| 黑人精品xxx一区| 亚洲男人第一av网站| 国产网站一区二区| 日韩在线视频观看正片免费网站| 奇米影视四色在线| 黄色在线免费看| 国产精品一区三区| 欧美在线亚洲在线| 日本美女黄色一级片| 亚洲视频一起| 欧美性猛交xxxxxxxx| 日本a在线天堂| 成人18在线| 国产a久久麻豆| 国产成人一区三区| 日本少妇xxxx动漫| 欧美成人自拍| 日韩精品免费综合视频在线播放| www欧美激情| 男人av在线播放| 亚洲视频综合在线| 欧美日韩在线观看一区| 亚洲国产精品suv| 天堂蜜桃一区二区三区| 欧美激情一区二区三区高清视频 | 香蕉久久免费电影| 亚洲综合色视频| 四虎一区二区| 四虎精品成人影院观看地址| 国产一区欧美日韩| 国产精品第一视频| 日本特级黄色片| 国内揄拍国内精品久久| 色哟哟入口国产精品| 久久国产精品无码一级毛片 | 日韩中文字幕麻豆| 国模精品一区二区三区色天香| 中国1级黄色片| 香蕉视频一区| 欧美精品一区二区高清在线观看| 日韩成人av免费| 成人在线高清| 欧美制服丝袜第一页| 成人免费观看视频在线观看| 久久亚洲资源| 亚洲一本大道在线| 蜜桃视频一区二区在线观看| 超碰在线免费播放| 自拍偷自拍亚洲精品播放| 亚洲精品国产精品国自产| 男人的天堂在线免费视频| 99在线热播精品免费| 91福利视频导航| 999av视频| 国产黑丝在线一区二区三区| 91黄在线观看| 亚洲第一天堂影院| 成人99免费视频| 国产主播一区二区三区四区| 亚洲国产日韩在线观看| 丁香激情综合五月| 精品卡一卡二| 欧美日韩伦理片| 国产嫩草影院久久久久| 日韩一本精品| 成人福利网站| 亚洲一区二区三区中文字幕| 97在线国产视频| 三妻四妾的电影电视剧在线观看 | 午夜免费福利小电影| h片视频在线观看| 精品毛片网大全| 成年人免费在线播放| yw.尤物在线精品视频| 欧美日韩国产另类一区| 五月天开心婷婷| 97久久超碰| 日韩电影免费在线观看中文字幕| 亚洲第一成人网站| 欧美残忍xxxx极端| 欧美精品成人在线| 亚洲日本视频在线观看| 日本午夜一本久久久综合| 91精品久久久久久久久久久久久| a在线观看免费| 99热精品一区二区| 亚洲精品一区二区三| av网站免费在线观看| 亚洲成人午夜电影| 爱情岛论坛亚洲首页入口章节| 国产中文欧美日韩在线| 亚洲国产成人一区| youjizz亚洲女人| 国内自拍一区| 国产精品女主播视频| www.激情五月| 久久久久久99精品| 少妇久久久久久被弄到高潮| 欧美人与性动交xxⅹxx| 欧美一区日本一区韩国一区| 国产国语性生话播放| 99精品视频在线| 久久免费成人精品视频| 在线观看毛片网站| proumb性欧美在线观看| 中国成人亚色综合网站| 欧美aaaaa性bbbbb小妇| 欧美电影一区二区三区| 波多野结衣福利| 一区二区三区毛片免费| 国产aⅴ夜夜欢一区二区三区| 亚洲AV无码乱码国产精品牛牛| 久久视频一区二区| 91黄色在线看| 亚洲最大的免费视频网站| 亚洲人成网站免费播放| 久久久久久天堂| 久久精品国产99国产精品| 精品国产免费一区二区三区 | 亚洲欧洲国产日韩| 99色精品视频| 久久久久久毛片免费看 | 国产视频精品在线| 久一视频在线观看| 激情深爱一区二区| 亚洲精品电影在线一区| 日韩在线影院| 日韩国产高清污视频在线观看| 免费毛片在线播放免费| 精品伊人久久久久7777人| 日韩av高清| 男人的天堂免费在线视频| 亚洲成**性毛茸茸| 青娱乐国产在线视频| 激情六月婷婷久久| 一区在线电影| 成人国产精品久久| www.日本久久久久com.| 日本免费精品视频| 2022国产精品视频| 国产精品免费入口| 亚洲成人一品| 日本精品免费一区二区三区| 免费国产羞羞网站视频| 亚洲一区二区成人在线观看| 欧美高清精品一区二区| 这里只有精品在线| 91精品网站| 欧美日韩经典丝袜| 精品少妇一区二区三区在线播放| 欧美卡一卡二卡三| 国产成人精品亚洲日本在线桃色| japanese在线视频| 国产视频一区二| 欧美男插女视频| 丰满大乳国产精品| 精品久久久中文| 亚洲AV无码国产成人久久| 天使萌一区二区三区免费观看| 欧美日韩一区在线播放| 成人国产精品| 麻豆乱码国产一区二区三区 | 国产五月天婷婷| av中文字幕亚洲| 久章草在线视频| 成人看的羞羞网站| 成人免费淫片aa视频免费| 最爽无遮挡行房视频在线| 精品国产乱码久久久久久久久| 久久久精品视频免费| 99re8在线精品视频免费播放| 女人天堂av手机在线| 精品亚洲成人| 91手机在线观看| 成人免费观看在线观看| 亚洲日本aⅴ片在线观看香蕉| 最近中文字幕在线免费观看| 中文字幕视频一区二区三区久| 性一交一黄一片| 国产偷自视频区视频一区二区| 日本不卡免费新一二三区| 99精品在线免费观看| 色综合久综合久久综合久鬼88| 婷婷五月综合激情| 欧美午夜精品久久久久久超碰 | 少妇性l交大片7724com| 欧美午夜在线| 欧美精品一区二区三区四区五区| 久久亚洲国产精品尤物| 欧美激情影音先锋| av在线免费一区| 欧美成人精品高清在线播放| 特黄视频免费看| 亚洲欧美激情小说另类| 丰满大乳奶做爰ⅹxx视频| 久久99精品视频| 人妻精品无码一区二区三区| 我不卡手机影院| 美国av一区二区三区| 精品久久久久久久久久岛国gif| 777午夜精品福利在线观看| 在线观看免费黄视频| 精品国产一区二区在线观看| 中文字幕第一页在线播放| 亚洲成av人片| 欧美肥妇bbwbbw| 久久免费看少妇高潮| 中文字幕制服丝袜| 麻豆精品精品国产自在97香蕉| 久久久亚洲精品无码| 久久久久亚洲| 亚洲电影网站| 免费短视频成人日韩| 91免费版网站在线观看| avav成人| 国产精品igao视频| 久久男人天堂| 欧美激情中文字幕在线| 蜜芽在线免费观看| 在线看欧美日韩| 香蕉国产在线视频| 亚洲成avwww人| 亚洲精品视频专区| 日韩一区二区三| 一级视频在线播放| 欧美日韩专区在线| 毛片毛片女人毛片毛片| 亚洲成人tv网| 国产中文字幕免费| 亚洲乱码日产精品bd| 美国黄色片视频| 中文字幕欧美三区| 免费一级特黄3大片视频| 久久欧美一区二区| 欧美一区二区三区成人精品| av亚洲精华国产精华精| 亚洲一级Av无码毛片久久精品| 国产精品18久久久久久久网站| 久久久精品高清| 国产一区二区三区免费播放| 国产美女18xxxx免费视频| 麻豆国产精品视频| 天天干天天玩天天操| 美女视频黄久久| 污污的视频免费| 精品一区二区三区的国产在线播放| 看欧美ab黄色大片视频免费| 老司机午夜免费精品视频| 激情综合网婷婷| 日韩成人一区二区| 99热这里只有精品在线播放| 蜜臀va亚洲va欧美va天堂| 粉嫩虎白女毛片人体| 日韩va欧美va亚洲va久久| 婷婷激情四射五月天| 蜜臀av亚洲一区中文字幕| 五月激情五月婷婷| 国产精品综合av一区二区国产馆| 波多野结衣中文字幕在线播放| 国产不卡在线视频| 中国一级特黄录像播放| 99久久婷婷国产| 欧美激情 亚洲| 久久久久99精品一区| 中文字幕av久久爽一区| 国产精品毛片久久久久久| 欧美在线视频第一页| 亚洲狠狠爱一区二区三区| 国产精品乱子伦| 欧美自拍丝袜亚洲| 国产精品久久综合青草亚洲AV| 日韩午夜激情电影| 外国精品视频在线观看 | 精品国产凹凸成av人导航| 午夜福利理论片在线观看| 在线成人一区二区| 伊人影院在线视频| 91av视频在线观看| 四虎影视国产精品| 国产一区精品视频| 成人动漫免费在线观看| 成人午夜视频免费观看| 男人的天堂亚洲在线| 精品亚洲视频在线| 99精品欧美一区二区三区综合在线| 久久久久久久毛片| 亚洲在线视频一区| 蜜臀尤物一区二区三区直播| 91精品国产欧美一区二区成人| 特黄视频在线观看| 日韩中文字幕视频| 亚洲校园激情春色| 亚洲一区二区三区毛片| 亚洲人成网www| 91麻豆天美传媒在线| 久久国产精品亚洲77777| 中文字幕一区二区在线观看视频| av成人老司机| 婷婷伊人五月天| 欧美在线观看视频在线| 免费观看的毛片| 欧美成人手机在线| 成人精品动漫| 久久香蕉综合色| 欧美日韩中文| jizz18女人| 久久久亚洲欧洲日产国码αv| 久草网在线观看| 欧美日韩国产另类不卡| 精品久久久久一区二区三区| 欧美精品久久久久a| 一区在线不卡| 亚洲午夜在线观看| 久久综合亚州| 亚洲午夜久久久久久久久| 亚洲婷婷综合色高清在线| 国产suv精品一区二区33| 欧美精品一区二区三区蜜桃视频 | 欧美精品momsxxx| 日韩激情视频一区二区| 捆绑调教一区二区三区| xxxxx在线观看| 欧美日韩激情视频| 丰满岳乱妇国产精品一区| 粗暴蹂躏中文一区二区三区| 国产伊人久久| 天天综合色天天综合色hd| 久久综合导航| 女尊高h男高潮呻吟| 亚洲成人免费看| 风流老熟女一区二区三区| 色综合久久天天综线观看| 国内不卡的一区二区三区中文字幕 | 欧美一级片中文字幕| 成人av网站在线观看免费| 免费麻豆国产一区二区三区四区| 91麻豆精品国产自产在线观看一区 | 国产精品欧美亚洲| 深夜福利国产精品| 小说区图片区亚洲| 亚洲欧洲日夜超级视频| 麻豆免费看一区二区三区| a资源在线观看| 欧美性色黄大片| 亚洲麻豆精品| 91视频88av| 欧美成人日本| 稀缺呦国内精品呦| 亚洲福利一区二区| 天堂av在线免费| 欧美与黑人午夜性猛交久久久| 亚洲人成亚洲精品| 熟妇人妻无乱码中文字幕真矢织江| 久久精品欧美一区二区三区麻豆| 欧美亚洲另类小说| 日韩在线观看你懂的| 成人自拍视频| 成人免费看片'免费看| 99热精品国产| 人妻中文字幕一区二区三区| www.亚洲一区| 草草视频在线一区二区| 精品国产免费av| 国产嫩草影院久久久久| 国产视频在线免费观看| 久久久久久国产精品| 丝袜av一区| 午夜在线观看av| 一区二区三区免费| 水莓100在线视频| 国产免费观看久久黄| 国产精品v日韩精品v欧美精品网站| 免费观看一级一片| 欧美日韩中文另类| 国产丝袜精品丝袜| 色噜噜狠狠色综合网| 国产精品白丝jk黑袜喷水| 国产对白videos麻豆高潮| 亚洲视频欧美视频| 福利一区三区| 狠狠爱免费视频| 亚洲免费在线观看视频| 亚洲人妻一区二区三区| 国产综合久久久久久| 99精品国产在热久久婷婷| 男人的天堂av网| 欧美v日韩v国产v| 欧美在线va视频| 丁香色欲久久久久久综合网| 久久久久亚洲综合| 亚洲av少妇一区二区在线观看| 国产91露脸中文字幕在线| 欧美不卡视频| 阿v天堂2014| 日韩精品免费在线视频观看| 久久久久久久久久久久电影| aa在线免费观看| 一卡二卡三卡日韩欧美|