Hola:
En principio, si cambias un id, y quieres volver a referenciar algo por ese id, evidentemente tendrás un error, así que el id tendría que ser lo último a modificar... y cosas como el id (que son atributos normales) puedes modificarlo sin setAttribute; directamente:
algo.id = nuevo_id;
y con el class es lo mismo, pero con javascript es className.
Saludos