2010-02-24 94 views
5

我看着像this one其他一些問題,但他們不解決這個特定問題:當我運行在IE瀏覽器的代碼的Javascript:問題時動態添加從HTML行到表中IE

(8 ):

$("<tr><td>1</td><td>A</td></tr>").appendTo("#myTable tbody"); 

我結束了這個HTML被添加到表中的身體:

<TR> 
1</TD><//TD> 
<TD> 
</TD> 
A</TD><//TD></TR><//TR> 
</TR> 

任何想法?提前致謝。

+0

完全不同的東西,我不知道的jQuery如何實現這一點,但如果你不能得到它一起工作這個特殊的結構,這可能是有幫助的: http://stackoverflow.com/questions/2324782/using-createelement-to-create-a-new-table/2324826#2324826 –

+0

FYI在IE7和FF3中正常工作。五 –

回答

1

你想要做的事情確實很難做到正確。這是因爲一個<TR>元素在<TABLE>的範圍之外沒有任何意義。雖然解釋你的意圖對我們人類來說很容易,但jQuery很可能不夠聰明去做,並做正確的事情。

這裏正確的做法是這樣的:

var tbody = document.getElementById('myTable').getElementsByTagName('tbody')[0]; 
var row = document.createElement('tr'); 
tbody.appendChild(row); 
var cell = document.createElement('td'); 
cell.innerHTML = '1'; 
row.appendChild(cell); 
cell = document.createElement('td'); 
cell.innerHTML = 'A'; 
row.appendChild(cell); 

現在,在你的問題的代碼固然更加緊湊,但這並不意味着jQuery將需要做幕後工作將大爲減少實際達到預期的效果。

1

嘗試

$("#myTable tbody").append("<tr><td>1</td><td>A</td></tr>"); 

制度都一樣,但它裏面的jQuery的