dom1n1k: вообще-то, перерисовка будет только одна - по окончанию функции(если я ничего не путаю). И с атрибутом, скорее всего, тоже будет - DOM поменялся же.
dom1n1k:
0. Сохраняем родителя
1. Вставляем в него элемент
2. Получаем обратно с помощью getElements ввиде NodeList
3. Если был родитель, вставляем обратно.
Больше никаких проблем.