Hola:
Me parece que si borras un nodo, aitomáticamente borra sus hijos si los tuviera... al menos en el enlace que he puesto antes pasa eso... pero se podría facilmente incluir una condición recursiva...
function borrar_mis_hijos(yo) {
while (yo.hasChildNodes()) {
if (yo.firstChild.hasChildNodes()) borrar_mis_hijos(yo.firstChild);
yo.removeChild(yo.firstChild);
}
}
Otra vez lo puse a pelo, pero sin duda funciona...
Saludos