2011-02-06 39 views
0

我有一個HTML表格,只有幾行。Javascript替換孩子?

我最初給了一些錶行(TR)的ID,我會用javascript來設置這些錶行的一些INNERHTML與一些新的動態內容。

但是,Internet Explorer不喜歡這個,並給出'未知的運行時錯誤',因爲我試圖設置一個內聯元素的INNERHTML。

所以現在,我試圖用一個新的代替整個錶行的孩子。我不能簡單地appendChild,因爲我需要新的表格行與原始表格位於相同的位置(模仿好像這個表格行的內容在實際中已經被改變,整個行被'替換')。

希望有人對此有一個解決方案(我在考慮a)獲取孩子位置b)刪除原始表格行和c)在A中找到的兒童位置插入新的表格行)。也許還有更簡單更好的解決方案?會喜歡一些輸入。

乾杯!

回答

4

IE不太喜歡通過innerHTML的表操作。你可以這樣做:

var oldrow = document.getElementById('the_id'); 
var newrow = document.createElement('tr'); 

// add cells to the new row 
var newcell = document.createElement('td'); 
newcell.innerHTML = "content"; 
newrow.appendChild(newcell); 
// ... ... ... 

// Replace the old row with the new one: 
oldrow.parentNode.insertBefore(newrow, oldrow); 
oldrow.parentNode.removeChild(oldrow); 
newrow.id = 'the_id'; 

題外話:像這樣的問題是,爲什麼我通常建議使用庫像jQueryPrototypeYUIClosure,或any of several others平滑過度瀏覽器古怪的一部分並提供DOM本身不提供的其他基本功能。這可以讓你專注於你正在解決的實際問題,而不是瀏覽器陷阱的奧祕。

0

這是innerHTML,而不是INNERHTML

+0

確實如此,但這不是問題所在。 – 2011-02-06 10:26:33

0

決定在當前行之後追加子行,並刪除舊行。我能想到的最有效的方法。