в JavaScript, удаление всех детей приводит к ошибке - PullRequest
1 голос
/ 01 сентября 2011

использование стандартной подпрограммы для удаления всех дочерних элементов в элементе

while( el.lastChild ) el.removeChild( el.lastChild );

выход: Uncaught Ошибка: NOT_FOUND_ERR: DOM Exception 8

for( var i=el.children.length; i; i-- ) el.removeChild( el.children[i-1] );

дает одинаковые

подпрограммы работы99% времени, но в одном DIV ошибки.

, если это имеет значение, фокус не в DIV.

Есть идеи, как поступить?

Найдена проблема.

При новом коде для INPUT type = 'number', где события input и mouseout создали событие change, поэтому поле будет обновляться правильно.

Inв некоторых случаях обновление элемента означало удаление строки.

Проблема заключалась в том, что после удаления строки фокус ввода был потерян, что привело к генерации собственного события change.Когда это событие запускалось, строка еще существовала, но потеряла связь со своим родителем.Это сгенерировало DOM Error 8 - не найдено.

Опять мы встретили врага, и они - это мы (спасибо Pogo).

1 Ответ

1 голос
/ 04 сентября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...