js、jquery 遍历table

29 篇文章 0 订阅
6 篇文章 0 订阅

<!DOCTYPE html>
<html>
<head>
    <title>Demo</title>
    <style type="text/css">
table
       
{
            border-collapse
: collapse;
       
}
        td
       
{
            border
:solid 1px #CCC;
            width
:20px;
            height
:20px;
       
}
   
</style>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
       
function GetTableData(){
           
var tableData=new Array();
            $(
"#testtable tr").each(function(trindex,tritem){
                tableData[trindex]
=new Array();
                $(tritem).find(
"td").each(function(tdindex,tditem){
                    tableData[trindex][tdindex]
=$(tditem).text();
                });
            });
            alert(tableData);
        }
   
</script>
</head>
<body>
<input type="button" value="GetTableData" onclick="GetTableData();"/>
<table id="testtable">
    <tr>
        <td>a</td>
        <td>b</td>
        <td>c</td>
        <td>d</td>
        <td>e</td>
    </tr>
    <tr>
        <td>a</td>
        <td>f</td>
        <td>h</td>
        <td>b</td>
        <td>c</td>
    </tr>
    <tr>
        <td>i</td>
        <td>j</td>
        <td>k</td>
        <td>l</td>
        <td>m</td>
    </tr>
    <tr>
        <td>a</td>
        <td>n</td>
        <td>o</td>
        <td>b</td>
        <td>p</td>
    </tr>
</table>
</body>
</html>

 

需求

  把含有rowspan、colspan的table还原。

  例如原table为:

  还原后的table为:

代码原理

  对table进行遍历,如果td的rowspan属性值大于1,则给当前的td的父元素的兄弟元素添加td,如果td的colspan属性值大于1,则在当前的td元素后添加td

完整代码

复制代码
//本文首发博客园:http://artwl.cnblogs.com(2012/02/08)
jQuery.fn.RevertTable=function(){
    $("tr",this).each(function(trindex,tritem){
        $(tritem).find("td").each(function(tdindex,tditem){
            var rowspanCount=$(tditem).attr("rowspan");
            var colspanCount=$(tditem).attr("colspan");
            var value=$(tditem).text();
            var newtd="<td>"+value+"</td>";
            if(rowspanCount>1){
                var parent=$(tditem).parent("tr")[0];
                while(rowspanCount-->1){
                    $($(parent).next()[0].children[tdindex]).before(newtd);
                    parent=$(parent).next();
                }
                $(tditem).attr("rowspan",1);
            }
            if(colspanCount>1){
                while(colspanCount-->1){
                    $(tditem).after(newtd);
                }
                $(tditem).attr("colspan",1);
            }
        });
    });
}
复制代码

测试案例

小结

  本文只提供了还原含有rowspan、colspan的table的方案之一,欢迎大家测试讨论。

  至于合并表格单元格网上已经有了代码:

  原文标题:jQuery colspan and rowspan table using cell break

  原文地址:http://willifirulais.blogspot.com/2007/07/jquery-table-column-break.html

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值