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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
<table>中点击一行中任意列数据,则可以让<checkbox>选中或者取消选中。
$(function () { $("#data_table tr:gt(0)").click(function () { console.log($(this).find(":checkbox").prop("checked")) if ($(this).find(":checkbox").prop("checked"))// 此
表格行列高亮显示的实现(二)
前面的一篇是通过 js 的鼠标移上移出的事件(mouseover,mouseout)实现的,下面这个是纯 CSS 实现表格行列同时高亮显示的效果 table { overflow: hidden; } tr:hover { background-color: #ffa; } td, th { position: relative; } td:hover::after, th:ho
html中表格table的行列合并问题解决
因为要做个网站,里面的内容除了大段文字之外,还有大量的表格,这就发现了表格排版的问题。 一般简单的表格,例如:                             这种形式就比较简单,只要简单地将(或者就行了 代码如下: http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> http://ww
js 实现选一个复选框 可以实现其他很多复选框同时选中
通过实现选一个复选框 可以实现其它多个复选框同时选中,并且可以弹出复选框之后的文本框。
js操作html的table,包括添加行,添加列,删除行,删除列,合并单元格(未实现,可参考代码)
记得以前面试的时候遇到过这样一个问题:有一个表格,然后有4个输入框,一个合并 按钮,输入框是这样的,从第几行到第几行,从第几列到第几列,然后点击按钮,合并 。当时我从学校出来,js知识只是知道一些,根本做不到!现在想想,其实这个问题也还是考基础功夫是否扎实!大家有兴趣可以自己做做看,测下自己是不是能够做出来。题目的截图:   第1/1列 第1/2列 第1/3列 第1/4列
Java从入门到精通 - Swing表格JTable选中行及列的位移
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Vector; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import
jquery table表格 获取选中的某一行和某一列的值
<table class="table table-hover" id="test123"> <tr> <th width="45">选择</th> <th width="100">驾校名称</th> <th width="100">合作驾校名称</
在网页表格中选中同时高亮一列的方法
在網頁表格中可以高亮選中一行,高亮一列就是參照這個方法改進的,下面是代碼。 //下面一段是定義樣式表,你可以通過 bgCOLOR 這個屬性改變顔色。.tableData {BACKGROUND: #FF0000; BORDER-BOTTOM: white 1px dashed; BORDER-LEFT: white 1px dashed; BORDER-RIGHT: white 1px
JS前端合并TABLE相同列的单元格
function _w_table_rowspan(_w_table_id,_w_table_colnum){ _w_table_firsttd = ""; _w_table_currenttd = ""; _w_table_SpanNum = 0; _w_table_Obj = $(_w_table_id + " tr td:nth-
checkBox复选框,获得选中那一行所有列的数据
JSP页面 小花 18 小草 20 小树 19 js function showCol(){ var check=$("input[name='one']:checked");//选中的复选框 check.each(function(){ var row=$(this).parent("td").parent("tr