[JS&Jquery]实现页面表格中相同内容的行或列合并
- 详细链接:https://shop499704308.taobao.com/?spm=a1z38n.10677092.card.11.594c1debsAGeak
<script type="text/javascript" language="javascript">- //基于js写法
- function hb() {
- var tab = document.getElementById("subtable");
- var maxCol = , val, count, start;
- var ys = "";
- for (var col = maxCol - ; col >= ; col--) {
- count = ;
- val = "";
- for (var i = ; i < tab.rows.length; i++) {
- if (val == tab.rows[i].cells[col].innerHTML) {
- count++;
- } else {
- if (count > ) {
- //合并
- start = i - count;
- if (ys == "#00FFFF") {
- ys = "#EEEE00";
- } else {
- ys = "#00FFFF";
- }
- tab.rows[start].cells[col].rowSpan = count;
- tab.rows[start].cells[].style.backgroundColor = ys; //改变颜色
- // ys="#EEEE00";
- // tab.rows[i].cells[1].style.backgroundColor="#00FFFF";//改变颜色绿色
- for (var j = start + ; j < i; j++) { //
- tab.rows[j].cells[col].style.display = "none";
- tab.rows[j].removeChild(tab.rows[j].cells[col]);
- }
- count = ;
- }
- val = tab.rows[i].cells[col].innerHTML;
- }
- }
- if (count > ) { //合并,最后几行相同的情况下
- start = i - count;
- tab.rows[start].cells[col].rowSpan = count;
- for (var j = start + ; j < i; j++) {
- tab.rows[j].removeChild(tab.rows[j].cells[col]);
- }
- }
- }
- }
- //基于Jquery写法
- //函数说明:合并指定表格(表格id为_w_table_id)指定列(列数为_w_table_colnum)的相同文本的相邻单元格
- //参数说明:_w_table_id 为需要进行合并单元格的表格的id。如在HTMl中指定表格 id="data" ,此参数应为 #data
- //参数说明:_w_table_colnum 为需要合并单元格的所在列。为数字,从最左边第一列为1开始算起。
- function _w_table_rowspan(_w_table_id, _w_table_colnum) {
- _w_table_firsttd = "";
- _w_table_currenttd = "";
- _w_table_SpanNum = ;
- _w_table_Obj = $(_w_table_id + " tr td:nth-child(" + _w_table_colnum + ")");
- _w_table_Obj.each(function (i) {
- if (i == ) {
- _w_table_firsttd = $(this);
- _w_table_SpanNum = ;
- } else {
- _w_table_currenttd = $(this);
- if (_w_table_firsttd.text() == _w_table_currenttd.text()) { //这边注意不是val()属性,而是text()属性
- _w_table_SpanNum++;
- _w_table_currenttd.hide(); //remove();
- _w_table_firsttd.attr("rowSpan", _w_table_SpanNum);
- } else {
- _w_table_firsttd = $(this);
- _w_table_SpanNum = ;
- }
- }
- });
- }
- //函数说明:合并指定表格(表格id为_w_table_id)指定行(行数为_w_table_rownum)的相同文本的相邻单元格
- //参数说明:_w_table_id 为需要进行合并单元格的表格id。如在HTMl中指定表格 id="data" ,此参数应为 #data
- //参数说明:_w_table_rownum 为需要合并单元格的所在行。其参数形式请参考jQuery中nth-child的参数。
- // 如果为数字,则从最左边第一行为1开始算起。
- // "even" 表示偶数行
- // "odd" 表示奇数行
- // "3n+1" 表示的行数为1、4、7、10.......
- //参数说明:_w_table_maxcolnum 为指定行中单元格对应的最大列数,列数大于这个数值的单元格将不进行比较合并。
- // 此参数可以为空,为空则指定行的所有单元格要进行比较合并。
- function _w_table_colspan(_w_table_id, _w_table_rownum, _w_table_maxcolnum) {
- if (_w_table_maxcolnum == void ) { _w_table_maxcolnum = ; }
- _w_table_firsttd = "";
- _w_table_currenttd = "";
- _w_table_SpanNum = ;
- $(_w_table_id + " tr:nth-child(" + _w_table_rownum + ")").each(function (i) {
- _w_table_Obj = $(this).children();
- _w_table_Obj.each(function (i) {
- if (i == ) {
- _w_table_firsttd = $(this);
- _w_table_SpanNum = ;
- } else if ((_w_table_maxcolnum > ) && (i > _w_table_maxcolnum)) {
- return "";
- } else {
- _w_table_currenttd = $(this);
- if (_w_table_firsttd.text() == _w_table_currenttd.text()) {
- _w_table_SpanNum++;
- _w_table_currenttd.hide(); //remove();
- _w_table_firsttd.attr("colSpan", _w_table_SpanNum);
- } else {
- _w_table_firsttd = $(this);
- _w_table_SpanNum = ;
- }
- }
- });
- });
- }
- </script>
[JS&Jquery]实现页面表格中相同内容的行或列合并的更多相关文章
- jQuery常用方法一览及JQuery选择器获取表格中按钮所在行的其他列值
Attribute: $(”p”).addClass(css中定义的样式类型); 给某个元素添加样式$(”img”).attr({src:”test.jpg”,alt:”test Image”}); ...
- js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样 ...
- avalon.js的循环操作在表格中的应用
avalon.js的循环操作在表格中的应用 一个JAVA开发,因为做的门户系统中,数据的展示加载的速度很影响使用效果,想到的是尽量少的请求后台,然后接触到了avalon,看介绍这是一个很轻很轻的MVV ...
- 如何让elemengUI中的表格组件相同内容的单元格自动合并
1. 前言 这两天在工作中遇到这样一个需求:将某个Excel中的数据在页面上以表格形式展示出来,并且尽量保持数据层级与Excel中一致.在原始Excel文件中,对每一行相同的数据都进行了合并,使得数据 ...
- 根据excel表格中的内容更新Sql数据库
关于[无法创建链接服务器 "(null)" 的 OLE DB 访问接口 SQL Server 2008读取EXCEL数据时,可能会报这个错误:无法创建链接服务器 "(nu ...
- javascript jquery 修改指定标签中的内容
javascript jquery 修改指定标签中的内容 $("#test1").text("Hello world!"); document.getEleme ...
- 使用js方法将table表格中指定列指定行中相同内容的单元格进行合并操作。
前言 使用js方法对html中的table表格进行单元格的行列合并操作. 网上执行此操作的实例方法有很多,但根据实际业务的区别,大多不适用. 所以在网上各位大神写的方法的基础上进行了部分修改以适合自己 ...
- jquery.dataTables表格中的内容怎么设置让它不自动换行
在table中增加 style="white-space: nowrap;" ,这样会撑大td.会出现滚动条. 其他内容配置:每列宽度: "aoColumnDefs&qu ...
- js动态的往表格中加入表单元素
效果如图: 这里我用的是layui的静态表格,其他框架也是一样的(只要你都表单元素要通过js进行渲染),我的需求是在表单中放了表格的元素,表格中还有表单的元素.表格中的行数据是js动态添加的,正常的添 ...
随机推荐
- 简单的TCP代理服务器
我之前的一篇文章(http://www.cnblogs.com/MikeZhang/archive/2012/03/07/socketRedirect.html )中介绍过用python写的一个简单的 ...
- Django学习---Form组件认证
Form组件认证 能够帮助我们做用户认证. 以前写我们自己写用户认证的时候,我们自己写HTML的form表单,点击提交,数据就被发送到后台,后台进行验证.在验证过程中我们就需要自己去写正则表达式去匹配 ...
- TMS Grid
TMS Grid http://edn.embarcadero.com/article/42553
- Xcode 中设置部分文件ARC支持
ARC是什么 ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting).简单地说,就是代码中自动加入了retain/release,原先需要手动添加的 ...
- Node.js究竟是什么?
来源:https://www.ibm.com/developerworks/cn/opensource/os-nodejs/index.html?ca=drs#ibm-pcon Node 旨在解决 ...
- Redis搭建(七):Redis的Cluster集群动态增删节点
一.引言 上一篇文章我们一步一步的教大家搭建了Redis的Cluster集群环境,形成了3个主节点和3个从节点的Cluster的环境.当然,大家可以使用 Cluster info 命令查看Cluste ...
- sqlserver job 执行时间
select instance_id,jh.run_date,jh.job_id,jh.step_name, case jh.run_status then 'failed' then 'Succee ...
- Spring IoC入门
------------------siwuxie095 Spring IoC 环境搭建 1.先下载相关库文件,下载链接 ...
- python操作vmware
import pysphere from pysphere import VIServer host_ip = "200.200.173.45" username = " ...
- mybatis框架入门程序:演示通过mybatis实现数据库的删除操作
1.mybatis的基本配置工作可以在我的这篇博客中查看:https://www.cnblogs.com/wyhluckdog/p/10149480.html 2.删除用户的映射文件: <!-- ...