崔东山的先生 2016-03-16 03:30 采纳率: 100%
浏览 1869
已采纳

table 下面代码这里只是列选中,改成行列都可以选中合并该怎么做?或者有其他方法来实现也可以。

 <!DOCTYPE HTML>
<HTML>
    <head>
        <TITLE>The document title</TITLE>
        <meta charset=utf-8>
        <script src="lib/jquery-1.8.1.min.js" type="text/javascript"></script>
        <style type="text/css">
        table{
        border-spacing: 0;
        }
        td{
        height: 50px;
        width: 50px;
        border-spacing: 0;
        }
        .hidden{
        display: none;
        }
        </style>
    </head>

    <body>
        <table border="1">
            <tr id ="r1">
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
            </tr>
            <tr id ="r2">
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
            </tr>
        </table>
        <p id ='log'></p>
        <button type="button" onclick="combine()">hebing</button>
        <script type="text/javascript">
        var selectecdlog = [];
        var resultLen = 0;
        var resultBegin = 0;
        var backColor = ['red','green','blue']; // assume 3 rows 1 -red 2 - green 3 - blue
        var resultColor =0;
        $("td").mousedown(function() {
        selectecdlog = [];
        resultColor = backColor[$(this).parent().attr('id').substr(1)-1];
        $('td').css('background-color', 'white');
        // ID for tr tag
        //alert($(this).parent().attr('id'));
        //get the column No.
        //alert($(this).index()+1);
        $(this).css('background-color', resultColor);
        selectecdlog.push($(this).attr('id'));
        //alert($(this).attr('id'));
        $("td").mouseup(onMouseUp);
        $("td").mouseover(onMouseOver);
        })
        function onMouseUp(){
        /* Act on the event */
        var len =resultLen= Math.abs(parseInt(selectecdlog[0].substr(selectecdlog[0].indexOf('c')+1)) - parseInt($(this).attr('id').substr(($(this).attr('id').indexOf('c'))+1)))+1;
        var begin =resultBegin= parseInt(selectecdlog[0].substr(selectecdlog[0].indexOf('c')+1)) >parseInt($(this).attr('id').substr(($(this).attr('id').indexOf('c'))+1)) ? parseInt($(this).attr('id').substr(($(this).attr('id').indexOf('c'))+1)):parseInt(selectecdlog[0].substr(selectecdlog[0].indexOf('c')+1));
        for(var i =0; i<resultLen;i++)
        {
        selectecdlog.push(selectecdlog[0].substr(0,2)+"c"+(resultBegin+i));

        }
        selectecdlog.shift();
        $('#log').text(selectecdlog.toString());

        $("td").unbind('mouseover',onMouseOver);
        $("td").unbind('mouseup',onMouseUp);
        }
        function onMouseOver (argument) {
        var len =resultLen= Math.abs(parseInt(selectecdlog[0].substr(selectecdlog[0].indexOf('c')+1)) - parseInt($(this).attr('id').substr(($(this).attr('id').indexOf('c'))+1)))+1;
        var begin =resultBegin= parseInt(selectecdlog[0].substr(selectecdlog[0].indexOf('c')+1)) >parseInt($(this).attr('id').substr(($(this).attr('id').indexOf('c'))+1)) ? parseInt($(this).attr('id').substr(($(this).attr('id').indexOf('c'))+1)):parseInt(selectecdlog[0].substr(selectecdlog[0].indexOf('c')+1));
        $('td').css('background-color', 'white');
        for(var i =0; i<len;i++)
        {
        $('#'+selectecdlog[0].substr(0,2)+"c"+(begin+i)).css('background-color', resultColor);
        }
        //alert( $(this).attr('id').substr(($(this).attr('id').indexOf('c'))+1));
        //$('#'+tdId).css('background-color', 'red');
        }
        // set id attr for each td
        $("td").each(function(index, val){
        /* iterate through array or object */
        $(this).attr('id', $(this).parent().attr('id')+"c"+($(this).index()+1))});
        //combine cells
        function combine (argument) {
        // body...
        for (var m in selectecdlog)
        {
        if(m==0)
        {
        $('#'+selectecdlog[m]).attr('colspan', resultLen);
        $('#'+selectecdlog[m]).css('width',resultLen*50+"px");
        //$('#'+selectecdlog[m]).css('background-color', 'bule');
        }
        else{
        $('#'+selectecdlog[m]).addClass('hidden');
        }
        }
        }
        </script>
    </body>
</HTML>
  • 写回答

4条回答

  • Go 旅城通票 2016-03-16 07:47
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥30 用arduino开发esp32控制ps2手柄一直报错
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿