Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Fallos con document.write

Estas en el tema de Fallos con document.write en el foro de Javascript en Foros del Web. Hola, vengo aqui por un problemilla que lleva semanas agobiandome. El caso es que el año que viene empiezo a estudiar javascript y decidí hacer ...
  #1 (permalink)  
Antiguo 31/07/2013, 13:58
roxyhana
Invitado
 
Mensajes: n/a
Puntos:
Fallos con document.write

Hola, vengo aqui por un problemilla que lleva semanas agobiandome. El caso es que el año que viene empiezo a estudiar javascript y decidí hacer un adelanto poniendome éste verano a practicar. Me hice un foro y estoy aprovechandolo para hacer en él cosas que poca gente haría pero de repente me he encontrado con un problemilla...

Código:
<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/>
Ese código, si lo utilizo tal cual, no me escribe ningún valor, se quedan ambos campos vacíos(las imágenes son los títulos). Si le quito el comentario al alert, me muestra en los campos:

Exp: 1
LVL: 2

Y en el cuadro de la alerta me muestra los verdaderos resultados que me interesan, que obviamente no son expe=1 ni nivel=2...

¿Por qué al quitar el alert deja de funcionar por completo? y ¿por qué en el cuadro del alert me sale todo correcto y en los campos me salen las globales? ¿Cómo hago para que me salga después de las imágenes los mismos valores que me salen en el alert?

Se que son muchas preguntas pero necesito aclararme, ya no se dónde buscar ni cómo solucionarlo.

¡Muchas gracias por adelantado!
  #2 (permalink)  
Antiguo 31/07/2013, 14:16
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 11 años, 4 meses
Puntos: 528
Respuesta: Fallos con document.write

1. <!-- es la forma de comentar un html, pero no un javascript. los comentarios en js son
//para una linea

y

/*
comentario para
dos lineas
*/

2. Los cálculos los haces dentro de una función que se ejecuta al cargar la página, pero estos valores se pierden para cuando quieres escribirlos con el document.write, ya que éste último está "fuera" dela función que hace el cálculo.

Puedes declarar tus variables de forma global (fuera de la función del onload) para que conserven su valor en cualquier parte, o bien dentro de tu función que hace el cálculo escribe los valores en algún elemento específico.
  #3 (permalink)  
Antiguo 31/07/2013, 14:29
roxyhana
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fallos con document.write

Al final lo hice de ésta manera:

Código:
<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;
}
</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/>
El problema es que necesito hacer un bucle y según me han comentado, no es posible hacerlo porque todos mis span tienen el mismo id, es decir, al ser un foro, todos son <span id="valor"> y yo necesito que repita esto siempre que encuentre ese id...
  #4 (permalink)  
Antiguo 31/07/2013, 14:46
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 11 años, 4 meses
Puntos: 528
Respuesta: Fallos con document.write

Efectivamente los id's deben ser únicos, por lo que para manejarlos en un bucle necesitas numerarlos, ejemplo

<span id="coment1">
<span id="coment2">
<span id="coment3">

Y así podrías recorrer mientras haya elementos con el id, ejemplo
Código Javascript:
Ver original
  1. var i=1;
  2. while(document.getElementById('coment'+i)!=undefined){//mientras existe un elemento id coment
  3. //algo...
  4. i++;
  5. }
  #5 (permalink)  
Antiguo 31/07/2013, 15:04
roxyhana
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fallos con document.write

Pues ya digo, es un foro lo que tengo y no puedo modificar el id porque automaticamente es el valor que toma...

A parte de eso,en Chrome si recargo la página con F5 me muestra los valores correctos pero si voy de enlace a enlace, en vez de los valores me ponen NaN...en Firefox siempre sale NaN, nunca funciona bien ni recargando con F5.

Etiquetas: fallos, funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:30.