电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

JS如何操作DOM基于表格動(dòng)態(tài)展示數(shù)據(jù)

瀏覽:99日期:2024-04-16 11:28:36

公司做一個(gè)實(shí)時(shí)監(jiān)控有一個(gè)地方需要把后臺(tái)推送的數(shù)據(jù)動(dòng)態(tài)的使用表格進(jìn)行展示

我知道有一些插件可以做,但問題是我找的那個(gè)插件發(fā)現(xiàn)動(dòng)態(tài)更新數(shù)據(jù)時(shí)IE內(nèi)存一直累積,最后會(huì)造成崩潰現(xiàn)象

使用別人的插件說起來是效果好一些,功能多一些,但是需要的JS和復(fù)雜的邏輯,一旦出問題你很難去處理它

我也趕不上再去研究它,我直接手工寫一個(gè)算了,雖然沒有多好的效果,沒有額外的功能,但是實(shí)現(xiàn)動(dòng)態(tài)表格數(shù)據(jù)刷新,還是能充分滿足要求的!

先把代碼全部貼出來,只要把這個(gè)代碼寫到HTML中,就能看到效果:

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><html xmlns='http://www.w3.org/1999/xhtml'><head><meta http-equiv='Content-Type' content='text/html; charset=gb2312' /><title></title><style type='text/css'>.table0 {font-family: '宋體';font-size: 14px;width: 400px;border-top-width: 1px;border-top-style: solid;border-top-color: #c4cdd4;border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #c4cdd4;border-right-width: 1px;border-right-style: solid;border-right-color: #c4cdd4;border-left-width: 1px;border-left-style: solid;border-left-color: #c4cdd4;}.table0 tr {height : 25px;padding-left:5px;text-align: left;}.table0 th {color: #4c7c9b;font-weight: normal;background-color: #f1f1f1;height: 25px;border-right-width: 1px;border-right-style: solid;border-right-color: #c4cdd4;}.table0 td {border-right-width: 1px;border-right-style: solid;border-right-color: #c4cdd4;border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #c4cdd4;}</style><script language='javascript' type='text/javascript'>var istt = false;var values = '';function callback(){if(istt){values = '[{’a’:1,’b’:’1’,’c’:’1’,’d’:’1’},{’a’:2,’b’:’2’,’c’:’2’,’d’:’2’},{’a’:3,’b’:’3’,’c’:’3’,’d’:’3’},{’a’:4,’b’:’4’,’c’:’4’,’d’:’4’}]';istt=false;}else{values = '[{’a’:10,’b’:’10’,’c’:’10’,’d’:’10’},{’a’:20,’b’:’20’,’c’:’20’,’d’:’20’},{’a’:30,’b’:’30’,’c’:’30’,’d’:’30’},{’a’:40,’b’:’40’,’c’:’40’,’d’:’40’}]';istt=true;}if(null!=values&&’’!=values){fnDeleteXLRow(); // 清除除標(biāo)題外所有行var objs=eval(values); // 解析JSONfor(var i=0;i<objs.length;i++){ // 循環(huán)對(duì)象var u = objs[i];var tab=document.getElementById('proc'); // 獲得表格var rows=tab.rows; // 表格ROW對(duì)象var row1=tab.insertRow(rows.length); // 插入一行rows是一個(gè)數(shù)組,代表沒一行,索引從0開始row1.insertCell(0).innerHTML='&nbsp;'+u.a; // insertCell插入列,從0開始row1.insertCell(1).innerHTML='&nbsp;'+u.b;row1.insertCell(2).innerHTML='&nbsp;'+u.c;row1.insertCell(3).innerHTML='&nbsp;'+u.d;}}// 更新時(shí)間的改變document.getElementById('endTime').value=curDateTime();// 垃圾回收CollectGarbage();// 產(chǎn)生回調(diào)setTimeout(callback, 1000); }// 刪除所有行,不刪除標(biāo)題行 function fnDeleteXLRow(){var table = document.getElementById(’proc’);var rowCount = table.rows.length; // 獲得一共多少行,因?yàn)椴粍h除標(biāo)題,所以索引從 1 開始for(var i=1;i<rowCount;i++){table.deleteRow(1); // 因?yàn)閯h除一行以后下面的行會(huì)頂上來,所以一直刪除第一行即可}}// 獲得當(dāng)前時(shí)間function curDateTime(){var d = new Date(); var year = d.getYear(); var month = d.getMonth()+1; var date = d.getDate(); var day = d.getDay(); var hours = d.getHours(); var minutes = d.getMinutes(); var seconds = d.getSeconds(); var ms = d.getMilliseconds(); var curDateTime= year;if(month>9) curDateTime = curDateTime +'-'+month;else curDateTime = curDateTime +'-0'+month;if(date>9) curDateTime = curDateTime +'-'+date;else curDateTime = curDateTime +'-0'+date;if(hours>9) curDateTime = curDateTime +' '+hours;else curDateTime = curDateTime +' 0'+hours;if(minutes>9) curDateTime = curDateTime +':'+minutes;else curDateTime = curDateTime +':0'+minutes;if(seconds>9) curDateTime = curDateTime +':'+seconds;else curDateTime = curDateTime +':0'+seconds;return curDateTime; }setTimeout(callback, 1000);</script></head><body><div align='left'><font size='2px'><b>最后更新時(shí)間:</b></font><input type='text' value='00-00-00 00:00:00' readonly='readonly'><br><table border='0' cellspacing='0' cellpadding='0' class='table0'><tr><th>&nbsp;<b>A</b></th><th>&nbsp;<b>B</b></th><th>&nbsp;<b>C</b></th><th>&nbsp;<b>D</b></th></tr></table></div></body></html>

效果:

JS如何操作DOM基于表格動(dòng)態(tài)展示數(shù)據(jù)

數(shù)據(jù)會(huì)一次是個(gè)位數(shù)一次是十位數(shù)的變化。

下面來簡單說一下實(shí)現(xiàn):

數(shù)據(jù)來源可以是推送的,可以是Ajax請(qǐng)求的,數(shù)據(jù)源就是Json字符串

解析Json,循環(huán)獲得對(duì)象數(shù)組,每循環(huán)一次增加一行,然后根據(jù)屬性在行中增加單元格和增加單元格的內(nèi)容。如果你想,也可以設(shè)置行和單元格的樣式

當(dāng)然每次增加前要先清除掉除標(biāo)題以外的所有行,然后再增加

刪除單元格的方法:

// 刪除所有行,不刪除標(biāo)題行function fnDeleteXLRow(){var table = document.getElementById(’proc’);var rowCount = table.rows.length; // 獲得一共多少行,因?yàn)椴粍h除標(biāo)題,所以索引從 1 開始for(var i=1;i<rowCount;i++){table.deleteRow(1); // 因?yàn)閯h除一行以后下面的行會(huì)頂上來,所以一直刪除第一行即可}}

獲得有多少行,從索引 1 開始循環(huán)一定的次數(shù),每次刪除的都是 索引 1 ,因?yàn)閯h除之后下面的會(huì)頂上來,這個(gè)看一下Excel就明白了

循環(huán)對(duì)象增加行和列的代碼:

for(var i=0;i<objs.length;i++){ // 循環(huán)對(duì)象var u = objs[i];var tab=document.getElementById('proc'); // 獲得表格var rows=tab.rows; // 表格ROW對(duì)象var row1=tab.insertRow(rows.length); // 插入一行rows是一個(gè)數(shù)組,代表沒一行,索引從0開始row1.insertCell(0).innerHTML='&nbsp;'+u.a; // insertCell插入列,從0開始row1.insertCell(1).innerHTML='&nbsp;'+u.b;row1.insertCell(2).innerHTML='&nbsp;'+u.c;row1.insertCell(3).innerHTML='&nbsp;'+u.d;}

你也可以這樣:

var row1cell0=row1.insertCell(0); // 指定列的樣式 row1cell0.className='m_td1';

來指定行或列的樣式,不過一般我們把表格設(shè)置一個(gè)樣式引用,然后在該樣式中處理就可以了

<table border='0' cellspacing='0' cellpadding='0' class='table0'>

樣式:

<style type='text/css'>.table0 {font-family: '宋體';font-size: 14px;width: 400px;border-top-width: 1px;border-top-style: solid;border-top-color: #c4cdd4;border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #c4cdd4;border-right-width: 1px;border-right-style: solid;border-right-color: #c4cdd4;border-left-width: 1px;border-left-style: solid;border-left-color: #c4cdd4;}.table0 tr {height : 25px;padding-left:5px;text-align: left;}.table0 th {color: #4c7c9b;font-weight: normal;background-color: #f1f1f1;height: 25px;border-right-width: 1px;border-right-style: solid;border-right-color: #c4cdd4;}.table0 td {border-right-width: 1px;border-right-style: solid;border-right-color: #c4cdd4;border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #c4cdd4;}</style>

這個(gè)樣式只針對(duì)該表格生效!

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 即用型透析袋,透析袋夹子,药敏纸片,L型涂布棒-上海桥星贸易有限公司 | 沈阳网站建设_沈阳网站制作_沈阳网页设计-做网站就找示剑新零售 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 济南品牌设计-济南品牌策划-即合品牌策划设计-山东即合官网 | PVC快速门-硬质快速门-洁净室快速门品牌厂家-苏州西朗门业 | 多功能干燥机,过滤洗涤干燥三合一设备-无锡市张华医药设备有限公司 | 通风天窗,通风气楼,屋顶通风天窗,屋顶通风天窗公司 | 郑州外墙清洗_郑州玻璃幕墙清洗_郑州开荒保洁-河南三恒清洗服务有限公司 | 粉末包装机,拆包机厂家,价格-上海强牛包装机械设备有限公司 | 工作心得_读书心得_学习心得_找心得体会范文就上学道文库 | 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 | 匀胶机旋涂仪-声扫显微镜-工业水浸超声-安赛斯(北京)科技有限公司 | 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | 电采暖锅炉_超低温空气源热泵_空气源热水器-鑫鲁禹电锅炉空气能热泵厂家 | 北京浩云律师事务所-企业法律顾问_破产清算等公司法律服务 | 承插管件_不锈钢承插管件_锻钢高压管件-温州科正阀门管件有限公司 | 比亚迪叉车-比亚迪电动叉车堆垛车托盘车仓储叉车价格多少钱报价 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 台式低速离心机-脱泡离心机-菌种摇床-常州市万丰仪器制造有限公司 | 小青瓦丨古建筑瓦丨青瓦厂家-宜兴市徽派古典建筑材料有限公司 | 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 | H型钢切割机,相贯线切割机,数控钻床,数控平面钻,钢结构设备,槽钢切割机,角钢切割机,翻转机,拼焊矫一体机 | 高通量组织研磨仪-多样品组织研磨仪-全自动组织研磨仪-研磨者科技(广州)有限公司 | 三佳互联一站式网站建设服务|网站开发|网站设计|网站搭建服务商 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 艺术漆十大品牌_艺术涂料加盟代理_蒙太奇艺术涂料厂家品牌|艺术漆|微水泥|硅藻泥|乳胶漆 | 恒温恒湿试验箱厂家-高低温试验箱维修价格_东莞环仪仪器_东莞环仪仪器 | 分光色差仪,测色仪,反透射灯箱,爱色丽分光光度仪,美能达色差仪维修_苏州欣美和仪器有限公司 | 防火窗_耐火窗_防火门厂家_防火卷帘门-重庆三乐门业有限公司 | 软瓷_柔性面砖_软瓷砖_柔性石材_MCM软瓷厂家_湖北博悦佳软瓷 | 交联度测试仪-湿漏电流测试仪-双85恒温恒湿试验箱-常州市科迈实验仪器有限公司 | 热熔胶网膜|pes热熔网膜价格|eva热熔胶膜|热熔胶膜|tpu热熔胶膜厂家-苏州惠洋胶粘制品有限公司 | 武汉不干胶印刷_标签设计印刷_不干胶标签印刷厂 - 武汉不干胶标签印刷厂家 | 低气压试验箱_高低温低气压试验箱_低气压实验箱 |林频试验设备品牌 | 上海logo设计| 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 美国PARKER齿轮泵,美国PARKER柱塞泵,美国PARKER叶片泵,美国PARKER电磁阀,美国PARKER比例阀-上海维特锐实业发展有限公司二部 | 免联考国际MBA_在职MBA报考条件/科目/排名-MBA信息网 | 湖南印刷厂|长沙印刷公司|画册印刷|挂历印刷|台历印刷|杂志印刷-乐成印刷 | 网优资讯-为循环资源、大宗商品、工业服务提供资讯与行情分析的数据服务平台 | 诸城网站建设-网络推广-网站优化-阿里巴巴托管-诸城恒泰互联 | 食药成分检测_调料配方还原_洗涤剂化学成分分析_饲料_百检信息科技有限公司 |