2011-01-10 129 views
2

我正在尝试打印大量列的表格。我带来了一个解决方案,通过分页符将列分成不同的表格。我想用JQuery来做到这一点。这里是HTML,我是JQuery的新手,请帮我解决这个问题。将HTML表格分解为两个不同的表格

原始的HTML结构

<table> 
<tr> 
    <th>Name</th> 
    <th>Age</th> 
</tr> 
<tr> 
    <td>Ami</td> 
    <td>35</td> 
</tr> 
<tr> 
    <td>jai</td> 
    <td>34</td> 
</tr> 

预期的HTML输出

<html> 
<table> 
    <tr> 
     <th>Name</th> 
     <th>Age</th> 
    </tr> 
    <tr> 
     <td>Ami</td> 
     <td>35</td> 
    </tr> 

</table> 

<table> 
    <tr> 
     <th>Name</th> 
     <th>Age</th> 
    </tr> 
    <tr> 
     <td>Ami</td> 
     <td>35</td> 
    </tr> 

</table> 
</html> 

是否有可能实现的JQuery预期的HTML结构。

+0

,做你想每一个名字是这样呢? 姓名年龄Ami 35 姓名年龄Jai 34 ? – Marnix 2011-01-10 23:37:12

+0

我觉得他们忘记了编码格式 – dqhendricks 2011-01-10 23:38:08

回答

7

一种可能的方式:

$('<table>').append(
    $('table tr:first-child').clone(), 
    $('table tr').slice(Math.ceil($('table tr').length/2)) 
).appendTo('body'); 

DEMO


版本2:

var max = 2; // change this 


var $t = $('table'); 
var $th = $('tr:first-child', $t).remove(); 
var l = $('tr',$t).length; 

while(l > max){ 
    // extract trs with index larger than max and add them to a new table 
    var $trs = $('tr',$t).filter(function(){ return $(this).index() < max; }); 
    $('<table/>').append($trs).insertBefore($t); 
    l-=max; 
} 
$('table').each(function(){ $(this).prepend($th.clone()); }); 

DEMO