Этот вопрос очень старый, но я обнаружил, что готовлюсь к сертификации Microsoft, и в учебнике было предложено использовать:
oldElement.replaceNode(newElement)
Я посмотрел, и кажется, что он поддерживается только в IE. Doh ..
Я подумал, что просто добавлю это здесь как забавную заметку;)