2013-01-18 70 views
1

我如何拆分表拆分表:與特定的高度

我有,我想在不同的表拆分當行的長表。我製作了一個腳本,用於測量行的高度,並將其添加到高度,直到達到特定的高度。然後,將添加「新行」類。也就是說,只要我來了......

的Javascript的jQuery

$(document).ready(function(){ 
    var init_height = $("table").height(); // total table height 
    var max_height = 400;     // example max height 
    if(init_height > max_height) { 
    var pages = Math.ceil(init_height/max_height); 
    } 
    var start_height = 0;     // start counter 
    $("table").find("tr").each(function(){ 
    start_height = start_height + $(this).height(); 
    if(start_height > max_height) { 
     $(this).addClass("new");    // marks the new table 
     start_height = 0;     // reset counter 
    } 
    }); 

    //$(this).find('.new'); ??????????? 

}); 

HTML

<table> 
    <thead> 
    <tr> 
     <th>Title</th> 
     <th>Description</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <td>Lorem</td> 
     <td>Dolor sit amet..... etc</td> 
    <tr> 
    <!-- a lot more rows here --> 
    </tbody> 
</table> 

在此jsfiddle你可以看到,應該會在新表中開始的行標記爲紅色。我期望的結果也將在每個新表格中都有。

回答

3

大多數時候,你想要什麼:

http://jsfiddle.net/BCK89/1/

$(".new").each(function() { 
    $("<table>").insertAfter("table:last"); 
    $("<thead>").append("table:last"); 
    $(this).nextUntil('.new').addBack().appendTo("table:last"); 
}); 

我不知道是否要離開.new在舊錶與否。如果你不這樣做,請刪除.addBack。您還必須填寫<thead>,但這應該很容易。

+0

可能值得一提的是,'.addBack'是jQuery 1.9的新增功能,相當於舊版本中的'.andSelf'。 – Blazemonger

+1

@Blazemonger我認爲你錯了︰http://jsfiddle.net/8Qae5/ - 這只是'.andSelf'已被棄用現在,我認爲 –

+0

你是對的 - [顯然它被悄悄地添加到1.8](http://api.jquery.com/addBack/)。 – Blazemonger