Выбор строки таблицы в javascript приводит к сбою IE8

#javascript #internet-explorer

#javascript #internet-explorer

Вопрос:

 document.getElementById("row").innerHTML = "";
  

Это приводит к тому, что IE выдает «Неизвестную ошибку времени выполнения».

Я знаю, что это известная ошибка, но есть ли какое-либо обходное решение (кроме очевидного использования div вместо этого).

Отлично работает во всех других браузерах.

Ответ №1:

Вместо того, чтобы «уничтожать» строку подобным образом, просто скройте ее:

 document.getElementById("row").style.display = "none";
  

Тот же конечный результат (строка исчезнет из поля зрения), не слишком вмешиваясь в DOM.

Редактировать: другой способ «очистить» элемент:

 var row = document.getElementById("row");
while (row.childNodes.length > 0)
    row.removeChildNode(row.childNodes[0]);
  

Должен быть как можно более кроссбраузерным — живой пример.

Комментарии:

1. Поскольку я перестраиваю его позже, он должен начинаться пустым.

2. Спасибо за помощь, я только что использовал jQuery для выбора. Ужасный IE.

3. Приветствия, jQuery действительно лучше, поскольку вам больше не нужно выполнять всю грязную работу. 🙂

Ответ №2:

можете ли вы предоставить используемый вами HTML-код? Есть ли причина, по которой вы не можете использовать jQuery?

может быть, вы могли бы использовать:

  document.getElementById('table1').deleteRow(_row.rowIndex);
  

Комментарии:

1. Код есть. Я могу использовать jQuery, но это очень простая функция