2017-06-06 79 views
0

我有一个任务是将每列的n列表分隔到不同的表。将表列分列到不同的表

我的这种想法:

  1. 我在每列th
  2. 因此th可能是新列的检测器。
  3. 我需要在每列中找到tr td
  4. 我需要创建新表-N与th-N valueth
  5. 我需要粘贴每个tr td-Nth

所以按照我的想法,我写了下面的代码:

jQuery(document).ready(function($) { 
 
    function tableshoot() { 
 

 
     $("table th").each(function() { 
 
      var $this = $(this); 
 
      var thistext = $this.html(); 
 
      var index = $this.index(); 
 

 
      var tdList = $this.closest("table").find("tr").find("td:eq(" + index + ")").html(); 
 

 
      $this.closest("table").append('<table class="mob-table-' + index + '"><tbody><tr><th>' + thistext + '</th></tr></tbody></table>'); 
 

 
      $this.closest("table").find("tr").find("td:eq(" + index + ")").each(function() { 
 
       var tdcontent = $(this).html(); 
 
       $('table.mob-table-' + index + ' tbody').append('<tr><td>' + tdcontent + '</td></tr>'); 
 
      }); 
 
     }); 
 

 
    }; 
 
    tableshoot(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tbody> 
 
    <tr> 
 
     <th> 
 
     COL 1 
 
     </th> 
 
     <th> 
 
     COL 2 
 
     </th> 
 
     <th> 
 
     COL 3 
 
     </th> 
 
    </tr> 
 
    <tr> 
 
     <td>VAL 1</td> 
 
     <td>VAL 2</td> 
 
     <td>VAL 3</td> 
 
    </tr> 
 
    <tr> 
 
     <td>VAL 11</td> 
 
     <td>VAL 22</td> 
 
     <td>VAL 33</td> 
 
    </tr> 
 
    <tr> 
 
     <td>VAL 111</td> 
 
     <td>VAL 222</td> 
 
     <td>VAL 333</td> 
 
    </tr> 
 
    </tbody> 
 
</table>

我的问题是:

是对的吗?还是有更干净的方法来做到这一点?

无论我的代码是否可行。希望这有助于某人。

回答

0

一些小东西:

  1. “找到(” TR “)。找到(” TD:EQ(... “改为 ”找到(TR TD:EQ ......“
  2. ” $( “表TH”)。每个(函数()$( “表第 ””,以改变“)。每个(函数(指数,值)”,对清洁访问索引和值。

jQuery doc each

相关问题