2013-12-20 21 views
0

У меня есть код javascript, который управляет таблицей HTML. Код должен иметь возможность удалять строку из таблицы HTML.Удаление строки из таблицы HTML в javascript

В настоящее время я использую следующий код, чтобы удалить строку:

var rowToDelete = ...; 

if (rowToDelete) 
    rowToDelete.remove(); 

Это отлично работает в Firefox & Chrome, однако, когда я загрузить страницу в 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, но у меня был легкий доступ к объекту jQuery для одного и того же элемента DOM без необходимости повторного вызова jQuery для его получения. Это работает. Благодарю. –

3

Chrome поддерживает .remove() на элементах.
Вы должны сделать:

rowToDelete.parentNode.removeChild(rowToDelete); 

Если вы хотите эту функцию в IE можно добавить функцию к прототипу HTMLElement.

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

извините, не понял в первом случае .. +1 для этого –

+0

Интересно, что FF, похоже, не возвращает удаленный элемент, например, Chrome. Я уверен, что спецификация требует этого. Мне нужно вернуться и проверить. –

+0

... выглядит как 'undefined' - правильный результат. Я предполагаю, что это имеет смысл, поскольку у вас уже есть узел. –

0

Если это дом элемент, который вы можете сделать

$(rowToDelete).remove(); 
Смежные вопросы