2009-10-31 29 views
13

我有一張需要動態添加列的數據表。可以說我有這個基本的表格開始:使用jQuery插入表格列

<table> 
<tr><td>cell 1</td><td>cell 2</td><td>cell 3</td></tr> 
<tr><td>cell 1</td><td>cell 2</td><td>cell 3</td></tr> 
<tr><td>cell 1</td><td>cell 2</td><td>cell 3</td></tr> 
</table> 

我想插入每一行小區1和小區2之間的列...我已經試過,但它只是不喜歡工作我希望......

$(document).ready(function(){ 
$('table').find('tr').each(function(){ 
    $(this).prepend('<td>cell 1a</td>'); 
}) 
}) 

回答

27

試試這個:

$(document).ready(function(){ 
    $('table').find('tr').each(function(){ 
     $(this).find('td').eq(0).after('<td>cell 1a</td>'); 
    }); 
}); 

你原來的代碼將列添加到每一行的末尾,而不是在列之間。這將找到第一列並將第一列旁邊的單元格添加。

+0

非常感謝,這個工作很完美!...... *砸頭*我應該尋找的細胞,並將其放置後。我真的需要一些咖啡因LOL – Mottie 2009-10-31 19:29:29

+0

我實際上最終使用了'td:eq(0)',因爲有時候我需要將一列插入到具有多於3列的表中,然後我需要做的是改變變量...再次感謝您的幫助! – Mottie 2009-10-31 19:57:47

+0

這是一個更好的主意。我已經改變了我的答案,包括這一點。 – 2009-10-31 20:12:45

2
$('table > tr > td:first-child').after('<td>cell 1a</td>'); 

tr > td一個tr後選擇第一級td,和after嵌入式元件的外部數據。

+0

我試過這個,但它沒有起作用,不過謝謝 – Mottie 2009-10-31 19:30:03

+2

這是行不通的,因爲大多數(如果不是全部的話)瀏覽器會圍繞''標籤包裝所有行,所以選擇器需要是「'table > tbody> tr> td:first-child'「。當然,這可能是一個有點慢的查詢執行,因爲jQuery將不得不做大量的過濾來獲取大表中的所有單元格... – 2009-10-31 19:33:50

0
$('td:first-child').after('&lt;td&gt;new cell&lt;/td&gt;');