GetElementByID no me funciona...

TClaw
15 de Febrero del 2006
Buenas... He empezado hace poco con javascript. No pretendo hacer grandes cosas sólo poco de DHTML del más basico.

He empezado con el tipico cambio del contenido de una etiqueta pero llevo horas buscando porque no me funciona y no doy con ello...

Al principio probe directamente referenciando la etiqueta con document.all["id"] hasta que he visto que en Firefox eso no funcionaba (aunque en IE si). Asi que he cambiado a getElementByID y entonces ya no funciona ni en un lado ni en otro...

Lo extraño es que codigos muy similares en otras paginas si que van a la perfeccion asi que es fallo de mi codigo pero no se porque...

Os dejo aki el codigo por si alguien sabe decirme porque no me funciona... Gracias de antemano...

El codigo es:

<html>
<head>
<title>Cambio de texto con link</title>

<script language="text/javascript">
function cambiar(objeto, texto){
var obj=document.getElementById(objeto);
obj.innertext=texto;
alert("La funcion de cambio ha actuado");
}
</script>
</head>

<body>

<div id="capa">Texto en la capa</div>
<table border="1"><tr><td id="celda">Texto en la celda</td></tr></table>

<a href="#" onClick="cambiar(\'capa\',\'Nuevo texto en la página\') ">Link que cambia la capa</a><br>
<input value="Boton que cambia la capa" type="button" onclick="cambiar(\'capa\',\'Nuevo texto en la página\')"><br>
<a href="#" onClick="cambiar(\'celda\',\'Nuevo texto en la página\') ">Link que cambia la celda</a><br>
<input value="Boton que cambia la celda" type="button" onclick="cambiar(\'celda\',\'Nuevo texto en la página\')"><br>

</body>

y la pagina donde lo estoy probando es:

www.ssim.org/pruebas/cambio.htm

inaki
15 de Febrero del 2006
En serio que nadie sabe porque no me hace ni caso?

He pensado que puede que sea porque no le indico la version de javascript pero en los ejemplos que he mirado con getelementbyid tp la especifican...

Tambien puede ser ques e me escape algo a la hora de llamar a la funcion con el onclick porque ya le meti un alert para averiguar si la funcion se ejecutaba y como no hace ningun alert supongo que es que al hacer click simplemente o no llama a la funcion o esta no se ejecuta por lo que sea...

Enga, darme alguna pista please...

inaki
15 de Febrero del 2006
Vale primer fallo detectado:

La funcion no era detectada como tal... Cuando se llamaba a cambiar se detectaba como que no existia.

Ahora no se detectan fallos pero simplmente no pasa nada... dejo el codigo de nuevo:

<html>
<head>
<title>Cambio de texto con link</title>

<script language="javascript">

function cambiar(objeto,texto){
var obj=document.getElementById(objeto)
obj.innertext=texto;

}
</script>
</head>

<body>

<div id="capa">Texto en la capa</div>

<a href="#" onClick="cambiar('capa','Nuevo texto en la página') ">Link que cambia la capa</a><br>

</body>
</html>

Drocher
15 de Febrero del 2006
Cuidado con las Mayusculas y minusculas en JavaScript, si pones

obj.innerText=texto;

te funcionará perfectamente.

Un saludo

I?
15 de Febrero del 2006
QUE QUE QUE QUE¿¿¿¿¿?????

ME estas diciendo que siempre que me fallan funciones (que es a menudo y luego se arreglan volviendo a escribirlas de nuevo) es porque las funciones de javascript distinguen entre mayusculas y minusculas????

Con variables lo veo hasta logico pero...

jejeje... la cosa es que si, ahora funciona... sera cuestion de ir con cuidado.

Mil gracias!

i?
15 de Febrero del 2006
RESUELTO!---


Vale... era lo del innerText...

Resulta que el Firefox no me detectaba el innerText pero si que lo hace con innerHTML... de hecho me viene mejor incluso asi que a seguir adelante! :D

I?
15 de Febrero del 2006
Pues no...

Me cole, resulta que ahora cambia de nuevo en IE pero en firefox sigue sin hacer ni caso... Es curioso porque en todos los ejemplos que he visto destinaban el document.getElemntById a NS y el document.all a IE... y resulta que el getElementById me lo reconoce Explorer y Firefox no????... :S

o es que innerText no lo reconoce firefox? (si no lo reconoce porque no me da un error la consola?)

La consola javascript no me detecta nada malo y si meto un alert al final de la funcion se ejecuta asi que vamos... sigo sin tener ni idea de como hacerlo...

Ahora la pagina esta asi:

<html>
<head>
<title>Cambio de texto con link</title>

<script language="javascript">

function cambiar(objeto,texto){
var obj=document.getElementById(objeto);
obj.innerText=texto;
}
</script>
</head>

<body>

<div id="capa">Texto en la capa</div>

<a href="#" onClick="cambiar('capa','Nuevo texto en la página') ">Link que cambia la capa</a><br>

</body>
</html>