Bueno, respecto al bucle podrías recorrer todos los elementos y mirar sus ids para ver si coinciden pero ya te digo que va totalmente en contra de la política de los navegadores y el RFC de (X)HTML.
<span id="koko">aaa</span>
<span id="mega">bbb</span>
<span id="koko">ccc</span>
<span id="super">ddd</span>
<span id="koko">eee</span>
<span id="frost">fff</span>
<script type="text/javascript">
var cambiar = function(tipo,id,valor){
// Obtener todos los elementos del tipo. (<span>, <a> etc..)
var elements = document.getElementsByTagName(tipo);
// Por cada elemento...
for(var i=0;i<elements.length;++i){
// Si tiene la misma id que la indicada, cambiar su valor
// por el valor indicado
if(elements[i].id===id){ elements[i].innerHTML = valor; }
}
return true;
};
// Lamar funcion
cambiar('span','koko','Hola me llamo earl');
</script>
Esto cambiaria el contenido de todos los <span> que tengan de id koko por "Hola me llamo earl".
(Por cierto, en Chrome sólo se actualizan los campos al pulsar F5...si voy de enlace a enlace me muestra NaN. En Firefox no funciona nunca, ni con F5, siempre NaN...)
No entendí -.-. NaN suele salir cuando intentas hacer una operación matemática sobre una variable no definida.
Saludos