У DOM-элемента невозможно изменить тэг. Можно только заменить старый элемент на новый, перенеся всё его содержимое. Например, так:
function replaceTag( element, newTag )
{
var elementNew = document.createElement( newTag );
elementNew.innerHTML = element.innerHTML;
Array.prototype.forEach.call( element.attributes, function( attr ) {
elementNew.setAttribute( attr.name, attr.value );
});
element.parentNode.insertBefore( elementNew, element );
element.parentNode.removeChild( element );
return elementNew;
}
Функция не переносит слушатели событий. Возвращает новый элемент.