计算每个单元格所在的实际行、列,而不是cellIndex
IE8、FireFox下测试可用
具体代码如下:
/** 浏览器判断 */ var Sys = {}; var ua = navigator.userAgent.toLowerCase(); if (window.ActiveXObject) Sys.ie = ua.match(/msie ([\d.]+)/)[1]; else if (document.getBoxObjectFor) Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1]; function containsArray(array, obj) { for (var i = 0; i < array.length; i++) { if (array[i] == obj) { return i; break; } } return -1; } Array.prototype.contains = function(obj) { return containsArray(this, obj); } function PrintTableToExcel(tableId) { var offsetLeftArray = new Array(); var cell;// 单元格Dom var col;// 单元格实际所在列 var cellStr;// 每个cell以row,col,rowSpan,colSpan,value形式 var cellStrArray = []; var objTab = document.getElementById(tableId); // 遍历第一次取出offsetLeft集合 for (var i = 0; i < objTab.rows.length; i++) { for (var j = 0; j < objTab.rows[i].cells.length; j++) { cell = objTab.rows[i].cells[j]; if (offsetLeftArray.contains(cell.offsetLeft) == -1) offsetLeftArray.push(cell.offsetLeft); } } offsetLeftArray.sort(function(x, y) { return parseInt(x) - parseInt(y); }); alert("offsetLeft集合:" + offsetLeftArray.join(',')); // 遍历第二次生成cellStrArray for (var i = 0; i < objTab.rows.length; i++) { for (var j = 0; j < objTab.rows[i].cells.length; j++) { cell = objTab.rows[i].cells[j]; col = offsetLeftArray.contains(cell.offsetLeft); cellStr = i + ',' + col + ',' + cell.rowSpan + ',' + cell.colSpan + "," + (Sys.firefox?cell.textContent:cell.innerText); cellStrArray.push(cellStr); } } // 显示 var str = "行,列,rowSpan,colSpan,值\n"; str += cellStrArray.join('\n'); alert(str); }
附件为例子.
相关推荐
对table表格进行操作,两行根据点击添加 删除按钮 进行单元格的删除 添加 合并单元格。
table数据相同时合并单元格,原理:逐行进行比较,相同时隐藏第二行,对第一行添加rowspan 【table数据相同时合并单元格,原理:逐行进行比较,相同时隐藏第二行,对第一行添加rowspan】
日常开发中,经常遇到表格里需要自动合并单元格,考虑到写服务器控件比较消耗性能,因些还是把这种工作交给客户端Javascript去做吧,基于习惯用jquery框架,所以封装了一个Jquery插件。
jquery table rowspan 表格单元格合并,设置相同属性表格合并
动态的给某个表对象添加列属性和行属性,采用obj.setAttribute("rowspan",n)(即rowspan=n)不能生效。
一个简单的自动合并相同值单元格的例子,简单易懂
NULL 博文链接:https://romyli.iteye.com/blog/774163
该类以纯原生JS编写,无需引入任何第三方库。 调用方法:new MergeRow(['col1','col2','col3'],data).renderTbl('td001'); 详情说明请见 mergerow.js 中的注释说明。 mergerow.html为具体事例。
动态生成表格,并自动合并相同单元格插件,可在bootstrapTable子表使用
通过jquery还原含有rowspan、colspan的table的实现方法,学习jquery的朋友可以参考下
复杂表格一般是用到td的两个属性:rowspan 、colspan属性值。 在html中<td> 标签定义 HTML 表格中的标准单元格。 (1)rowspan 属性规定单元格可横跨的行数; (2)colspan 属性规定单元格可横跨的列数。 <...
js操作table元素,表格的行列新增、删除汇集.txt
前台页面table合并单元格,可以指定合并但愿格的列数。 _w_table_lefttitle_rowspan("#evalAspectTable",1,1); 函数说明:合并指定表格(表格id为_w_table_id)指定列 (行数大于_w_table_mincolnum 小于_w_table_...
colspan等于几就是合并几个列的单元格。du比如:zhicolspan="2",就是合并了2个列的单元格。 rowspan,表示合并行dao。rowspan等于几就是合并几个行的单元格。比如:rowspan="2", 就是合并了2个行的单元格
jquery.table.rowspan.js
1.表格作用:表格用来展示数据 2.写法 <table align="表格对齐方式center/right/left" border="表格边框 默认没有边框" ... (2)找到目标单元格 写合并单元格数量 rowspan/colspan=" " (3)删除多余单元格
本文实例讲述了微信小程序实现的绘制table表格功能。分享给大家供大家参考,具体如下: 表格的绘制 js Page({ data:{ infeed:[', 1周, 2周, 3周, 总计], endwise1: 游泳, tb1:0, tb2:0, tb3:0, tb4:0, endwise2: ...