精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

www.4hu95.com四虎| 91视频 -- 69xx| 亚洲奶汁xxxx哺乳期| 日韩视频一区二区三区在线播放免费观看| 亚洲国产免费av| 亚洲精品中文字幕无码蜜桃| 日本三级在线视频| 国产不卡视频一区| 国产成人精品一区二区三区| 国产黄色小视频网站| 欧洲亚洲一区二区三区| 欧美美女bb生活片| 国产成人在线免费看| av亚洲在线| 成熟亚洲日本毛茸茸凸凹| 日韩av成人在线观看| 亚洲天堂一级片| 伊人成综合网yiren22| 欧美一区二区观看视频| 狠狠爱免费视频| 99在线视频观看| 欧美激情一区不卡| 精选一区二区三区四区五区| 国产一区二区三区中文字幕| 亚洲女同在线| 久久久久久午夜| 欧美a级片免费看| 亚洲国产网址| 亚洲韩国青草视频| 国内精品国产三级国产aⅴ久| 欧美大胆性生话| 亚洲小说欧美激情另类| 亚洲日本欧美在线| 欧美91精品久久久久国产性生爱| 狠狠色综合播放一区二区| 奇门遁甲1982国语版免费观看高清| wwwav国产| 欧美丰满日韩| 在线视频免费一区二区| 四虎永久免费影院| 国产精品zjzjzj在线观看| 91精品国产入口| 超碰超碰在线观看| 亚洲成av在线| 在线精品视频一区二区| 欧美韩国日本在线| 美女高潮视频在线看| 一级女性全黄久久生活片免费| 中文字幕中文字幕99| 蜜桃视频在线播放| 2024国产精品| 欧美日韩系列| 国产无套粉嫩白浆在线2022年| 91偷拍与自偷拍精品| 国产在线一区二区三区欧美| 欧美一区二区三区激情| 岛国一区二区三区| 99久久精品无码一区二区毛片 | 亚洲第一综合网| 天天躁日日躁狠狠躁欧美| 亚洲福利视频网| 精品人妻一区二区免费| 大奶在线精品| 亚洲国产成人久久综合一区| youjizz.com国产| 久久精品国产亚洲5555| 亚洲精品按摩视频| v8888av| 自拍偷拍一区| 在线观看精品国产视频| 992在线观看| 亚洲午夜精品一区 二区 三区| 日韩亚洲在线观看| av激情在线观看| 亚洲小说区图片区| 青青青国产精品一区二区| 秋霞av一区二区三区| 日本在线不卡视频一二三区| 国产精品网站大全| 99国产在线播放| jiyouzz国产精品久久| 久久久久综合一区二区三区| 国产精品无码专区av在线播放| 久久精品无码一区| 九九综合久久| 最新中文字幕亚洲| 青娱乐av在线| 噜噜噜91成人网| 91精品国产自产在线观看永久| 精品久久无码中文字幕| 99精品视频在线观看| 视频一区三区| 手机在线免费观看av| 懂色aⅴ精品一区二区三区蜜月| 欧美日韩亚洲一二三| 2020国产精品小视频| 亚洲国产高清福利视频| www.黄色在线| 欧美午夜一区| 国产精品久久视频| 国产后入清纯学生妹| 91免费视频大全| 黄色一级片网址| 黄视频免费在线看| 精品视频色一区| 亚洲高清无码久久| 国产精品黑丝在线播放| 韩国三级日本三级少妇99| 中文字幕 欧美激情| 粉嫩高潮美女一区二区三区| 日韩hmxxxx| 麻豆福利在线观看| 欧美三级三级三级| 在线观看国产免费视频| 五月精品视频| 国产成人精品一区二区在线| 成人毛片视频免费看| 国产精品三级视频| 女人天堂av手机在线| 国产精久久一区二区| 国产一区二区三区在线视频| 国产污片在线观看| 国产精品一区二区三区四区| 日韩欧美一区二区三区四区五区| 日本h片在线观看| 欧美日韩精品一区二区三区 | 久久美女高清视频| 精品免费久久久久久久| 欧美亚洲综合视频| 亚洲欧美日韩直播| 日韩 欧美 亚洲| 国产盗摄一区二区三区| 制服丝袜综合日韩欧美| 国产精品videossex撒尿| 日韩www在线| 国产真人真事毛片| 高清不卡一区二区| 看一级黄色录像| 国产精品麻豆| 久久精品人人做人人爽| 中文字幕人妻一区二区在线视频| 久久久噜噜噜久久人人看| 男人日女人视频网站| 97久久综合区小说区图片区| 久久精品免费电影| 国产精品久久久久久久一区二区| 国产日韩av一区二区| 成熟丰满熟妇高潮xxxxx视频| 日韩在线网址| 欧美激情1区| 中文字幕亚洲欧美在线| 欧美亚洲另类小说| www国产精品av| www国产黄色| 日本欧美高清| 国产91久久婷婷一区二区| 欧美日本网站| 婷婷中文字幕一区三区| 激情综合丁香五月| 国产欧美精品| 欧洲成人一区二区| 亚洲精品555| 亚洲欧美在线免费| a片在线免费观看| 国产精品久久久久久亚洲毛片| 手机在线看福利| 97精品国产福利一区二区三区| 国产精品网站视频| 黄色网在线免费看| 精品欧美一区二区在线观看 | 亚洲成人三区| 99中文视频在线| 黄视频免费在线看| 亚洲午夜精品久久久久久久久久久久| 久草视频在线免费| 亚洲婷婷综合色高清在线| 小日子的在线观看免费第8集| 欧美韩国一区| 国产一区喷水| a∨色狠狠一区二区三区| 久久精品久久久久电影| 亚洲经典一区二区| 懂色av一区二区三区| 欧美自拍偷拍网| 国产激情视频一区二区三区欧美| 日本中文字幕亚洲| 欧美一级精品| 成人免费在线看片| 最新欧美色图| 久久深夜福利免费观看| 神马午夜电影一区二区三区在线观看 | 久久综合婷婷综合| 成人网ww555视频免费看| 欧美美最猛性xxxxxx| 黄色软件在线观看| 日韩欧美成人一区| 亚洲av无码精品一区二区| 亚洲人成网站在线| 特级西西人体wwwww| 精品一区二区三区久久久| www.99热这里只有精品| 日韩久久综合| 狠狠色综合网站久久久久久久| 亚州欧美在线| 欧美有码在线观看视频| 中文在线观看免费| 国产香蕉一区二区三区在线视频| 国产99视频在线| 在线亚洲人成电影网站色www| 私库av在线播放| 国产免费成人在线视频| 久久本道综合色狠狠五月| 国产亚洲欧美在线精品| 亚洲天堂av一区| 丰腴饱满的极品熟妇| 国产成人在线影院| wwwwwxxxx日本| 免费永久网站黄欧美| 成人av在线播放观看| 欧美hd在线| 日本高清视频一区二区三区| 国产精品一区二区中文字幕| 91久久精品一区| 在线看欧美视频| 2019中文字幕在线观看| 国产在线拍揄自揄拍视频| www高清在线视频日韩欧美| 日本五码在线| 亚洲精品国产拍免费91在线| 亚洲精品成人区在线观看| 欧美日韩亚洲国产综合| 精品久久久久久久久久久国产字幕| 亚洲五码中文字幕| 午夜免费激情视频| 18成人在线视频| 午夜精品久久久久99蜜桃最新版| 国产欧美精品一区二区三区四区| a天堂视频在线观看| 国产99久久久精品| 永久看看免费大片| 国产精品综合二区| 手机精品视频在线| 激情综合五月天| 国产永久免费网站| 国内精品伊人久久久久av一坑| 国产福利影院在线观看| 日韩国产高清在线| 精品久久久久久无码国产| 免费在线观看成人av| 男人揉女人奶房视频60分| 无码久久精品国产亚洲av影片| 久久综合久久99| 特级西西人体4444xxxx| 99久久夜色精品国产网站| 日本人妻一区二区三区| 成人一区在线观看| 在线中文字日产幕| 不卡的看片网站| av鲁丝一区鲁丝二区鲁丝三区| 99国产精品久久久久久久久久| 丰满少妇一区二区三区| 久久久午夜精品| 欧美激情视频二区| 中文字幕一区av| 青青草原免费观看| 亚欧色一区w666天堂| 久久午夜免费视频| 欧美性xxxx极品hd满灌| 国产主播第一页| 欧美男生操女生| 精品人妻一区二区三区含羞草 | 亚洲国产综合在线| 精品在线播放视频| 色综合天天性综合| 中文字幕男人天堂| 日韩欧美你懂的| 亚洲人妻一区二区| 最近2019中文字幕第三页视频| 国产福利视频在线| 91精品国产91久久久久久久久| 最近高清中文在线字幕在线观看1| 国产精品成熟老女人| 国产精品国产亚洲精品| 国产精品一区二区a| 国产99久久久国产精品成人免费 | 久久精品国产99久久| 午夜啪啪免费视频| 在线亚洲激情| 天堂一区在线观看| 成人一道本在线| 亚洲精品国产精品国自产网站| 亚洲欧美日韩中文字幕一区二区三区| 国产极品美女高潮无套嗷嗷叫酒店 | 精品一区精品二区| 日本福利专区在线观看| 综合 欧美 亚洲日本| 亚洲欧洲av一区二区三区久久| 青青操视频在线播放| 婷婷综合另类小说色区| 一区不卡在线观看| 精品亚洲aⅴ在线观看| 色影院视频在线| 97超碰色婷婷| av日韩久久| 日本精品一区二区三区高清 久久 日本精品一区二区三区不卡无字幕 | 国产精品美女久久久久久久网站| 久久午夜鲁丝片午夜精品| 色av成人天堂桃色av| 成人免费公开视频| 日韩亚洲精品电影| 欧美性猛交xxx高清大费中文| 99r国产精品视频| 日韩精品第一区| 北条麻妃在线观看| 懂色av噜噜一区二区三区av| 中文字幕美女视频| 99久久亚洲国产日韩美女| 国产午夜精品免费一区二区三区| 日韩免费影院| 国产日本欧美一区| 国产一区二区三区探花| koreanbj精品视频一区| 国产精品一区二区久久精品爱涩| 成人黄色a级片| 色综合av在线| 天堂在线中文字幕| 国a精品视频大全| 999在线精品| www.一区二区.com| 国内欧美视频一区二区| 东京热无码av男人的天堂| 色先锋久久av资源部| 亚洲欧洲成人在线| 欧美激情视频一区二区| 国产色99精品9i| 正在播放一区| 极品少妇一区二区三区精品视频 | ㊣最新国产の精品bt伙计久久| 久久久精品免费看| 日韩激情一二三区| 国产精品二区三区| 91精品国产调教在线观看| 粉色视频免费看| 国产精品福利av| 伊人网免费视频| 日韩午夜在线视频| 四虎精品在线观看| 一区二区三区欧美在线| 久久国产精品72免费观看| 五月婷婷六月香| 91麻豆精品91久久久久同性| 午夜老司机在线观看| 国产精品女人久久久久久| 日韩欧美高清在线播放| 天堂av8在线| 亚洲女与黑人做爰| jizz国产视频| 国模视频一区二区三区| 日韩av黄色在线| 激情五月亚洲色图| 国产精品久久久久影院色老大| 亚洲综合五月天婷婷丁香| 精品国产欧美一区二区五十路| 99热这里有精品| 9色porny| 久久综合九色综合97婷婷女人| 狠狠人妻久久久久久| 亚洲石原莉奈一区二区在线观看| 福利精品一区| 青青草视频国产| 99精品热视频| 中文字幕观看在线| 美女福利精品视频| 欧美理论电影在线精品| 免费大片在线观看| 国产精品久久久久久亚洲毛片| 国产成人精品无码高潮| 91精品国产乱码久久久久久久久| 国产成人高清| 日本亚洲一区二区三区| 天天av天天翘天天综合网| 黄色在线观看网| 99久久综合狠狠综合久久止| 国产农村妇女精品一二区| 免费观看特级毛片| 亚洲国产成人精品久久久国产成人一区| 黑人巨大亚洲一区二区久| 中文字幕av日韩精品| bt欧美亚洲午夜电影天堂| 最近中文字幕在线免费观看| 欧美猛少妇色xxxxx| 国产永久精品大片wwwapp| 一二三级黄色片| 日韩欧美国产中文字幕| 国产精品一区二区三区视频网站| 黄色99视频| 狠狠网亚洲精品| 波多野结衣一区二区三区四区| 精品自拍视频在线观看| 精品视频99|