2012-10-08 12 views
5

Come aggiungere <thead> e <tbody> utilizzando jquery?jquery aggiungi <thead> e aggiungi <tbody>

il problema è che il mio tavolo ha 1 o 2 file?

$('#myTable tr:has(th)').wrap('<thead></thead>'); 

<table id="myTable"> 

<tr><th>1</th><th>2</th><th>3</th><th>4</th></tr> 
<tr><th>1</th><th>2</th><th>3</th><th>4</th></tr> 

<tr><td>1</td><td>2</td><td>3</td><td>4</td></tr> 
<tr><td>1</td><td>2</td><td>3</td><td>4</td></tr> 
<tr><td>1</td><td>2</td><td>3</td><td>4</td></tr> 
<tr><td>1</td><td>2</td><td>3</td><td>4</td></tr> 
<tr><td>1</td><td>2</td><td>3</td><td>4</td></tr> 



</table> 
+2

un [intestazione della tabella] (http://www.w3.org/wiki/HTML/Elements/th) ha in genere un 'thead' elemento come un fratello di 'tbody', non più teste all'interno di una riga. – jbabey

+0

@jbabey non tutti i browser aggiungono un elemento thead. Aggiungono un tbody. – epascarello

risposta

13

Quello che dovete fare è rimuovere le righe e li aggiunge ad un elemento thead

var myTable = jQuery("#myTable"); 
var thead = myTable.find("thead"); 
var thRows = myTable.find("tr:has(th)"); 

if (thead.length===0){ //if there is no thead element, add one. 
    thead = jQuery("<thead></thead>").appendTo(myTable);  
} 

var copy = thRows.clone(true).appendTo("thead"); 
thRows.remove(); 

jsFiddle exmaple

5

uso wrapAll invece di avvolgere

$('#myTable tr:has(th)').wrapAll('<thead></thead>');​ 
$("#myTable thead").prependTo("#myTable") 
+1

Questo non è corretto. Esso si tradurrà in '' – epascarello

+1

[jsFiddle] (http://jsfiddle.net/q224z/) che mostra questo è rotto e una soluzione non corretta. – epascarello

+0

try wrapAll (''); – AlxVallejo

0
function createTable(data) { 
    var str = ""; 
    str += '<table><thead>'; 
    str += '<tr><td>Pos</td><td>Ref</td></tr></thead><tbody>'; 
    for (var item in data.recentList) { 
     str += '<tr>'; 
     for (idata in data.recentList[item]) { 
      str += '<td>' + data.recentList[item][idata] + '</td>'; 
     } 
     str += '</tr>'; 
    } 
    str += '</tbody></table>'; 
    $('body').append(str); 
} 

versione di lavoro che crea una tabella da un array