2013-04-16 60 views

回答

15

的方法之一是使用JQuery包裝方法。見WrapUnWrap

Demo

Demo W/O class

$(document).ready(function() { 
    var tbl = $("table"); 
     $('td','table').unwrap().each(
    function() {  
      tbl.append($(this).wrap('<tr>').parent()); 
    }); 
    }); 

簡單多了一個:

$(document).ready(function() { 
    $('table').find('td').unwrap().wrap($('<tr/>')); 
}); 

Fiddle

+2

我每天學習的東西在這裏新的SO。優雅的解決方案PScoder。 – Lowkase

+1

@PSCoder我測試了它。它也解開** table **標籤。現在結果就像'..​​...' – Win

+1

@Win感謝您指出..我已更新我的答案..請看看這是否有幫助。 – PSL

1

就像一個建議..你可以使用divs的細胞,而不是一個表,它會發生,沒有任何JS使用浮動CSS:

這樣的:

http://jsfiddle.net/tZt3Q/9/

HTML:

<div class="tableDivColumns"> 
<div>One</div><div>Tow</div><div>Three</div><div>Four</div><div>Five</div><div>six</div> 
    <div>Seven</div><div>Eight</div><div>Nine</div> 
</div> 

<div class="tableDivRows"> 
<div>One</div><div>Tow</div><div>Three</div><div>Four</div><div>Five</div><div>six</div> 
    <div>Seven</div><div>Eight</div><div>Nine</div> 
</div> 

CSS:

.tableDivColumns {border:1px solid green; padding 5px; width:160px;height:160px;} 
.tableDivColumns div {border:1px solid blue; width:50px; height:50px;float:left;} 

.tableDivRows {border:1px solid green; padding 5px; width:60px;height:470px;} 
.tableDivRows div {border:1px solid blue; width:50px; height:50px;float:left;} 
+0

這是一個傳統的ASP.Net控制,所以我不能很容易地轉換爲div標籤,而無需花費很多時間。感謝您的評論。 – Win

+0

瞭解,請記住,JS可能是一個性能問題,這取決於單元格的數量,所以如果它相關的話,我會在之前檢查它。 – Mortalus

2

試試這個:

單列

var $tds = $("table td").clone(); 
$("table").empty().append($("<tr>").append($tds)); 

http://jsfiddle.net/hescano/tZt3Q/10/

單列

var $tds = $("table td").clone(); 
$("table").empty(); 
$tds.each(function(){ 
    $("table").append($("<tr>").append($(this))); 
}); 

http://jsfiddle.net/hescano/tZt3Q/11/

+0

這與我想要的相反。我想只有一個單元格的行,而不是單行中的所有單元格。 – Win

+0

因爲你的問題,你說「我想轉換成單行」會導致混淆。也許這是清楚的圖像,但我看不到圖像:p(阻止域在工作) –

+0

我已編輯它。 –