jQuery+CSS: 一行代码搞定行列转置

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>行列转置</title>
    <script type="text/javascript" src="//cdn.gbtags.com/jquery/2.1.1/jquery.min.js"></script>
    <style type="text/css">
        table
        {
            border: 1px solid #ccc;
            font-size: 14px;
        }
        table th
        {
            background: orange;
            color: #fff;
            padding: 10px;
        }
        table td
        {
            padding: 10px;
        }
        table.vertical
        {
            -webkit-writing-mode: vertical-lr;
            -moz-writing-mode: vertical-lr;
            -ms-writing-mode: tb-lr;
            writing-mode: vertical-lr;
        }
        table.vertical th, table.vertical td
        {
            width: 100px;
            height: 14px;
        }
        table.vertical div
        {
            width: 100px;
            -webkit-writing-mode: horizontal-tb;
            -moz-writing-mode: horizontal-tb;
            -ms-writing-mode: lr-tb;
            writing-mode: horizontal-tb;
        }
    </style>
    <script type="text/javascript">
        var flag = false;
        //注:多次点击后,内面文字会包裹多层div,尚无好的解决方法
        function test(){
            if(!flag){
                $('table').addClass('vertical').find('th, td').wrapInner('<div>');
                //$('table').addClass('vertical');//数字会变垂直,不能用
            }else{
                $('table').removeClass('vertical');
            }
            flag=!flag;
        }
    </script>
</head>
<body>
   <table>
      <tr>
      <th>列1</th>
      <th>列2</th>
      <th>列3</th>
      <th>列4</th>
      </tr>
      <tr>
      <td>数据1-1</td>
      <td>数据1-2</td>
      <td>数据1-3</td>
      <td>数据1-4</td>
      </tr>
      <tr>
      <td>数据2-1</td>
      <td>数据2-2</td>
      <td>数据2-3</td>
      <td>数据2-4</td>
      </tr>
      <tr>
      <td>数据3-1</td>
      <td>数据3-2</td>
      <td>数据3-3</td>
      <td>数据3-4</td>
      </tr>
    </table>
    <input type="button" onclick="test()" value="行列转置" />
</body>
</html>

Chrome 39.0.2171.95 m, IE 11 通过

参考: http://www.gbtags.com/gb/share/4511.htm

猜你喜欢

转载自blog.csdn.net/liuxiao723846/article/details/80885321