2013-12-20 23 views
0

我有管理HTML表的JavaScript代碼。該代碼需要能夠從HTML表中刪除一行。從javascript中的HTML表中刪除一行

我目前使用下面的代碼刪除行:

var rowToDelete = ...; 

if (rowToDelete) 
    rowToDelete.remove(); 

這在Firefox &鉻罰款,但是,當我加載頁面在IE 11 &彈出JavaScript調試器,它顯示

Object doesn't support property or method 'remove'

我還沒有在早期版本的IE中試過這段代碼。

我怎樣才能以跨瀏覽器的方式做到這一點?我的頁面包含jQuery,所以我可以使用jQuery方法。

+6

是什麼'rowToDelete'?它是一個dom元素或jQuery包裝對象 –

+0

是'rowToDelete'是一個jQuery對象還是一個節點? – BenM

+0

'...'?在'var rowToDelete = ...;' –

回答

1

確保您rowToDelete是一個jQuery對象,像這樣:

var rowToDelete = $('tr'); 
rowToDelete.remove(); 
+0

rowToDelete是一個DOM元素,但我確實可以輕鬆訪問同一個DOM元素的jQuery對象,而無需再次調用jQuery來獲取它。這工作。謝謝。 –

3

Chrome支持.remove()上的元素。
你應該這樣做:

rowToDelete.parentNode.removeChild(rowToDelete); 

如果你想在IE此功能可以將功能添加到HTML元素的原型。

HTMLElement.prototype.remove = function(){ 
    this.parentNode.removeChild(this); 
} 
+0

對不起,初次不明白.. +1對此 –

+0

有趣的是,FF似乎沒有像Chrome那樣返回已移除的元素。我很確定規範要求這樣做。我必須回去檢查。 –

+0

...看起來像'undefined'是正確的結果。我想這是有道理的,因爲你已經有了這個節點。 –

0

如果你可以做一個DOM元素

$(rowToDelete).remove();