Попробуйте функцию замены с помощью jQuery. Это то, что вы ищете?
http://api.jquery.com/replaceWith/
Какой нежелательный результат вы получаете?
ОБНОВЛЕНИЕ: Оказывается, проблема в способе создания элементов DOM в jQuery.
Ваш код ожидает, что 'var original' - это элемент, но это не так.
var container = $('<html><body><div class="navigation">1</div></body></html>');
alert(container.length); // returns 1, div.navigation
var container = $('<html><body><div class="navigation">1</div><div class="body"></div></body></html>');
alert(container.length); // returns 2, div.navigation, div.body
var container = $('<div id="root"><html><body><div class="navigation">1</div></body></html></div>');
alert(container.length); // returns 1, sweet! we can use this
После некоторого тестирования это результаты, которые я получил из приведенного выше кода.
Быстрое решение вашей проблемы - обновить код примерно так:
var original = $('<div id="root">' + v + '</div>', document);