2 java journey Java_Journey 于 2016.03.16 11:30 提问

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个回答

showbo
showbo   Ds   Rxr 2016.03.16 15:47
已采纳
lilei1030
lilei1030   2016.03.16 16:16

你可以给需要同时控制的行,列

里边加一个id选择器 eg:



,在用style样式来同时控制他们的样式 #tr: width=100px;height=30px
qq_17797165
qq_17797165   2016.03.16 18:26

把父级选择器定在table上。

qq_17797165
qq_17797165   2016.03.16 18:38

<!DOCTYPE html>





RunJS

<br> $(function(){<br> $(&quot;td&quot;).click(function(){<br> var me = $(this);<br> me.closest(&quot;table&quot;).find(&quot;tr,td&quot;).css(&quot;backgroundColor&quot;,&quot;&quot;);<br> var tr = me.closest(&quot;tr&quot;).css(&quot;backgroundColor&quot;,&quot;red&quot;);<br> var table = tr.closest(&quot;table&quot;);<br> table.find(&quot;tr&quot;).find(&quot;td:eq(&quot;+me.index()+&quot;)&quot;).css(&quot;backgroundColor&quot;,&quot;red&quot;);<br> });<br> });<br>



















232

232

232

232

232

232

232

232

232


Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!