Autor
|
Tema: javascript document.write falla (Leído 7,588 veces)
|
RoxyHana
Desconectado
Mensajes: 10
|
Hola! Resulta que tengo el siguiente código: <div id="usercountpost"> <span id="valor"></span></div> <script type="text/javascript"> window.onload = function (){ var mens=parseInt(document.getElementById('valor').innerText); var expe=parseInt(mens*1.6); var nivel=parseInt(expe/2); } </script> <img src="http://i226.photobucket.com/albums/dd257/RoxyHana/Lyslan_Foro/Iconos/5_zpse406282e.png"/> <script type="text/javascript">document.write(nivel);</script><br/> <img src="http://i226.photobucket.com/albums/dd257/RoxyHana/Lyslan_Foro/Iconos/4_zpsaaad303d.png"/> <script type="text/javascript">document.write(expe);</script><br/>
El valor del span se rellena gracias a otro script. El caso es que document.write(nivel); y document.write(expe); no me muestran los valores pero si dentro del script pongo alert(nivel); o alert(expe);, si que me muestra lo que necesito! Por otra parte necesito convertir esto en un bucle ya que tengo varios <span> con la misma id y necesito que haga lo mismo con todas... ¿Alguna idea? Muchas gracias por adelantado!
|
|
« Última modificación: 31 Julio 2013, 20:08 pm por RoxyHana »
|
En línea
|
|
|
|
EFEX
Desconectado
Mensajes: 1.171
"Dinero Facil"
|
Declara expe, nivel como variables globales y en vez de utilizar innerText probá con innerHTML. Para generar el bucle necesitas cambiar el nombre del id, no pueden tener el mismo nombre, algo como.. ...
Pero eso ya tendras que ver tu script en como lo podes generar. Con una sentencia for obtenes cada valor, haces la operacion y podes generar un nuevo elemento(div) con cada resultado.
|
|
|
En línea
|
|
|
|
RoxyHana
Desconectado
Mensajes: 10
|
No funciona como global tampoco, a lo mejor lo estoy haciendo mal porque acabo de empezar hace poco a estudiar javascript, me resulta más extraño que java... He probado innerHTML tambien y no funciona...lo extraño me sigue pareciendo que en el alert si funciona, me muestra todo correcto. El código así tal cual me devuelve expe=1 y nivel=2 en los campos, y en el alert me lo muestra bien, con lo calculado en el script pero si oculto el alert, se me quedan los campos tambien vacíos...las globales dejan de mostrarse. <div id="usercountpost"> <span id="valor"></span></div> <script type="text/javascript"> var expe=1; var nivel=2; window.onload = function (){ var mens=parseInt(document.getElementById('valor').innerText); expe=parseInt(mens*1.6); nivel=parseInt(expe/2); alert('Mensajes: '+mens+' Exp: '+expe+' Nivel: '+nivel); } </script> <img src="http://i226.photobucket.com/albums/dd257/RoxyHana/Lyslan_Foro/Iconos/5_zpse406282e.png"/> <script type="text/javascript">document.write(nivel);</script><br/> <img src="http://i226.photobucket.com/albums/dd257/RoxyHana/Lyslan_Foro/Iconos/4_zpsaaad303d.png"/> <script type="text/javascript">document.write(expe);</script><br/>
|
|
« Última modificación: 31 Julio 2013, 21:41 pm por RoxyHana »
|
En línea
|
|
|
|
#!drvy
|
Segun he entendido, lo que te pasa es que no cambian las valores en el document.write pero si cambian en el alert. Eso te pasa por una sencilla razón: window.onload = function(), espera a que todo el documento este cargado antes de ejecutarse, mientras que los document.write que pones con las imágenes se ejecutan nada mas se carguen, por tanto, todavía no tienen los valores que se definen dentro de la función. Yo lo que haría seria esto: <div id="usercountpost"> <span id="valor">5</span></div> <script type="text/javascript"> var expe=1; var nivel=2; window.onload = function (){ var mens=parseInt(document.getElementById('valor').innerText); expe=parseInt(mens*1.6); nivel=parseInt(expe/2); document.getElementById('cantidad_nivel').innerHTML = nivel; document.getElementById('cantidad_exp').innerHTML = expe; alert('Mensajes: '+mens+' Exp: '+expe+' Nivel: '+nivel); } </script> <img src="http://i226.photobucket.com/albums/dd257/RoxyHana/Lyslan_Foro/Iconos/5_zpse406282e.png"/> <span id="cantidad_nivel"></span><br/> <img src="http://i226.photobucket.com/albums/dd257/RoxyHana/Lyslan_Foro/Iconos/4_zpsaaad303d.png"/> <span id="cantidad_exp"></span><br/>
Por otra parte necesito convertir esto en un bucle ya que tengo varios <span> con la misma id y necesito que haga lo mismo con todas... HTML esta diseñado SOLO y ÚNICAMENTE para un ID por elemento. Varios ID te arruinan =). Utiliza class y el método getElementsByClassName(). Saludos
|
|
« Última modificación: 31 Julio 2013, 22:13 pm por drvy | BSM »
|
En línea
|
|
|
|
EFEX
Desconectado
Mensajes: 1.171
"Dinero Facil"
|
Si, el maldito onload , tambien podes crear una funcion y llamarlo... var expe; var nivel; function MostrarNivelExp(){ var mens=parseInt(document.getElementById('valor').innerHTML); expe=parseInt(mens*1.6); nivel=parseInt(expe/2); } MostrarNivelExp();
|
|
|
En línea
|
|
|
|
1mpuls0
Desconectado
Mensajes: 1.186
|
window.onload = function(), espera a que todo el documento este cargado antes de ejecutarse, mientras que los document.write que pones con las imágenes se ejecutan nada mas se carguen, por tanto, todavía no tienen los valores que se definen dentro de la función.
Pero lo más raro es que dice que con una variable si le mostró el resultado xD
|
|
|
En línea
|
abc
|
|
|
RoxyHana
Desconectado
Mensajes: 10
|
Funciona! pero es curioso porque si borro el alert, deja de funcionar, es decir, se quedan los campos vacíos...yo puse el alert solo para comprobar los valores no necesito que me salga. ¿Por qué pasa eso?
|
|
|
En línea
|
|
|
|
#!drvy
|
Seguro que no borras nada mas que el alert ? Por que si funciona quitandolo ·_·
Saludos
|
|
|
En línea
|
|
|
|
1mpuls0
Desconectado
Mensajes: 1.186
|
Funciona! pero es curioso porque si borro el alert, deja de funcionar, es decir, se quedan los campos vacíos...yo puse el alert solo para comprobar los valores no necesito que me salga. ¿Por qué pasa eso?
Jajaja algo similar me pasó hace tiempo y la solución que le di fue utilizar jquery para mostrar una imagen de cargando. Pero el problema es el mismo que comenta drvy | BSM (como se pronuncia? xD) Edito. Aunque revisando bien... no tendría porque pasar en este caso D: Algo debes tener mal.
|
|
« Última modificación: 31 Julio 2013, 22:24 pm por Darhius »
|
En línea
|
abc
|
|
|
RoxyHana
Desconectado
Mensajes: 10
|
Vale, era porque lo ponía en comentario pero al borrarlo si que funciona, mas o menos...me da otros problemas pero intentaré arregarlo por mi cuenta. Si veo que no hay manera volveré por aqui!
Muchas gracias por la ayuda, me sirvió bastante!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
ayuda en error javascript de mozilla document.all undefined
Desarrollo Web
|
elponce
|
0
|
2,267
|
22 Marzo 2012, 14:48 pm
por elponce
|
|
|
Problema con javascript: Document.write me tiene mania!!!!!
« 1 2 3 4 »
Desarrollo Web
|
z3nth10n
|
31
|
14,521
|
7 Mayo 2013, 23:00 pm
por z3nth10n
|
|
|
Cual es la diferencia entre console.log y document.write?
Desarrollo Web
|
Robocop8
|
2
|
5,968
|
6 Agosto 2017, 17:19 pm
por [.:: NauJFracT ::.]
|
|
|
MOVIDO: Cual es la diferencia entre console.log y document.write?
Programación General
|
Eleкtro
|
0
|
2,156
|
6 Agosto 2017, 12:54 pm
por Eleкtro
|
|
|
Curso de javascript | 12. DOM - el Document Object Model
Desarrollo Web
|
TickTack
|
1
|
4,018
|
22 Agosto 2022, 13:05 pm
por TickTack
|
|