2014-07-22 24 views
1

Id喜歡改變,我從SharePoint網站得到一個表的佈局。無法在源代碼中更改表格,但我可以將JavaScript添加到頁面並希望對其進行修改。的Javascript改變一個表格單元格,從一行的結束,到它自己的錶行 - 這可能

問題是,表格是固定寬度,並且列被平分,但最後一列包含大量文本,當它被全部壓扁成一個窄列時,它會使讀取變得困難。

我想什麼是改變這一點(實際的表可以有更多的行)

+-----+-----+-----+-----+-----+ 
|  |  |  |  |eeeee| 
| a | b | c | d |eeeee| 
|  |  |  |  |eeeee| 
+-----+-----+-----+-----+-----+ 
|  |  |  |  |55555| 
| 1 | 2 | 3 | 4 |55555| 
|  |  |  |  |55555| 
+-----+-----+-----+-----+-----+ 

對此

+-----+-----+-----+-----+ 
|  |  |  |  | 
| a | b | c | d | 
|  |  |  |  | 
+-----+-----+-----+-----+ 
| eeeeeeeeeeeeeee | 
+-----------------------+ 
|  |  |  |  | 
| 1 | 2 | 3 | 4 | 
|  |  |  |  | 
+-----+-----+-----+-----+ 
| 555555555555555 | 
+-----------------------+ 

我嘗試添加使用的innerHTML額外的標籤,追加/前置但這些似乎只創建最後一個單元格內的行(這可能是因爲我做錯了?)

這甚至可能嗎?還是隱藏現有表格並重新創建一個表格? 任何人都可以提供指向解決?

謝謝

+3

請發表您的實際HTML代碼,並且你已經嘗試這種自己動手解決。 –

回答

2

不知道確切的HTML結構,這是很容易做到的。

HTML

<table> 
    <tr> 
     <td>a</td> 
     <td>b</td> 
     <td>c</td> 
     <td>d</td> 
    </tr> 
    <tr> 
     <td>e</td> 
     <td>f</td> 
     <td>g</td> 
     <td>h</td> 
    </tr> 
</table> 

JS

$(document).ready(function() { 
    $("table tr").each(function() { 
     var cell = $(this).find("td:last-of-type"); 
     $(this).after("<tr><td colspan='3'>" + cell.html() + "</td></tr>"); 
     cell.remove(); 
    }); 
}); 

見本FIDDLE的一個例子。

+1

還必須將下一行 – singe3

+0

'合併單元格中複製它後刪除最後一個單元格('val')=「4''是的''​​不是'' ...如果不使用ISN變量屬性」 t需要。 $(this).after(「​​」+ $(this).find(「td:last-of-type」)。html()+「」);'。 .. :) – Frogmouth

+1

好點。更新了答案,以反映更改刪除最後一個單元格和'colspan'屬性設置爲'td'。 – ZiNNED

0

following應該這樣做:

var numColumns = $('table#foo tr:first td').length - 1; 
$('table#foo tr').each(function() { 
    $('<tr/>').append($('td:last', this).attr('colspan', numColumns)).insertAfter(this); 
}); 
相關問題