崔东山的先生 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 怀疑手机被监控,请问怎么解决和防止
  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区
  • ¥15 在grasshopper里DrawViewportWires更改预览后,禁用电池仍然显示
  • ¥15 NAO机器人的录音程序保存问题
  • ¥15 C#读写EXCEL文件,不同编译
  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键