Veo que ahí pasa algo con la variable
elem. Debería ser un string si es un id, pero está pasado en el setTimeout como número... cuidado con las comillas...
Bueno la verdad es que veo todo el
setTimeout mal porque las variables son globales (y no has concatenado nada, no sé muy bien qué se toma en la siguiente llamada...). Las variables deberían ser locales si quieres manejar tres relojes...
Te paso un ejemplo, a ver si sacas conclusiones:
Código PHP:
<div id="c1"> </div> <button type="button" onclick="contador(4,'c1')">Empezar éste en 4</button>
<div id="c2"> </div> <button type="button" onclick="contador(-8,'c2')">Empezar éste en -8</button>
<div id="c3"> </div> <button type="button" onclick="contador(65,'c3')">Empezar éste en 65</button>
<script type="text/javascript">
<!--
// document.getElementById abreviado
function $(x) { return document.getElementById(x); }
function contador(i, elem) {
i++;
$(elem).innerHTML = i;
setTimeout("contador("+i+",'"+elem+"')", 1000);
}
// -->
</script>
Saludos.