Foros del Web » Programando para Internet » Javascript »

Modificar una variable global en una función

Estas en el tema de Modificar una variable global en una función en el foro de Javascript en Foros del Web. No puedo cambiar la variable global, cuando llamo la función me sigue mostrando el mismo resultado. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original < script ...
  #1 (permalink)  
Antiguo 17/02/2011, 00:16
dalfeju
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Modificar una variable global en una función

No puedo cambiar la variable global, cuando llamo la función me sigue mostrando el mismo resultado.

Código Javascript:
Ver original
  1. <script>
  2. var x = "2";
  3.  
  4. function num(){
  5. x = "3";
  6. }
  7.  
  8. alert(x);
  9.  
  10. </script>
  #2 (permalink)  
Antiguo 17/02/2011, 00:46
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Modificar una variable global en una función

Hola:

No se ve que hagas llamadas a tu función

Código:
<script>
var x = "2";

function num(){
x = "3"; 
}
num();
alert(x);

</script>
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Última edición por caricatos; 17/02/2011 a las 00:47 Razón: errores
  #3 (permalink)  
Antiguo 17/02/2011, 00:52
dalfeju
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Modificar una variable global en una función

Gracias por la ayuda, la llamada la hago dentro del body. Pero la variable sigue estando igual
  #4 (permalink)  
Antiguo 17/02/2011, 00:58
dalfeju
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Modificar una variable global en una función

El código es algo parcido a esto

Código Javascript:
Ver original
  1. <script type="text/javascript" language="javascript">
  2. var url = "original";
  3.  
  4. function tal(div){
  5.     if(div=="1")   
  6.       url = "nueva";
  7. }
  8.  
  9. </script>
  10.  
  11. Y la llamo as&#237;, bueno no se si lo estoy haciendo correctamente.
  12.  
  13. <a href="javascript:tal(1);">Continuar</a>

Lo que quiero que haga es que cuando se presione continuar url cambie al que está en la función.

Última edición por dalfeju; 17/02/2011 a las 01:05
  #5 (permalink)  
Antiguo 17/02/2011, 01:24
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Modificar una variable global en una función

Hola:

¡Antes había otro código, verdad!

Primero, un reproche: ¿Por qué una etiqueta "a" (semánticamente enlace o ancla), si lo que pretendes es lanzar una función/script... para eso puedes usar cualquier etiqueta, y la más adecuada semánticamente hablando también son los botones (type button), pero cualquier otro vale y solo usas el evento onclick.

Sobre la consulta: uasa como parámetro un número y comparas una cadena. Revisa eso y nos cuentas.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 17/02/2011, 01:49
dalfeju
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Modificar una variable global en una función

Jajaja básicamente es eso lo que quiero hacer. Seguí tus consejos, emplee el botón y por lo de los parámetros fue una equivocación mía a la hora de escribirlo acá. Aún así sigue igual, no hay cambios.
  #7 (permalink)  
Antiguo 17/02/2011, 02:47
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Modificar una variable global en una función

Hola:

Lo he probado cambiando el nombre div (prefiero no usar variables que puedan crear conflictos) y sí que funciona.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 17/02/2011, 05:31
 
Fecha de Ingreso: diciembre-2010
Ubicación: valencia
Mensajes: 203
Antigüedad: 13 años, 11 meses
Puntos: 11
Respuesta: Modificar una variable global en una función

lo correcto es usar return:

Código Javascript:
Ver original
  1. function cualquier_cosa()
  2. {
  3.  return algo;
  4. }
  5.  
  6. variable = cualquier_cosa();
  #9 (permalink)  
Antiguo 17/02/2011, 13:16
dalfeju
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Modificar una variable global en una función

caricatos lo intenté pero nada, osea si funciona si consulto la función tal(div); y luego muestro la variable. Así si, pero quiero hacer eso dentro del botón. No sé si lo este haciendo bien, mira:

<input type="button" value="Continuar" onclick="tal(1);"/>

El hace lo que está en la función y de hecho la variable cambia, pero al momento de salirse se pierde dicho valor. Yo quiero que quede ya con ese nuevo valor.

enrique4480 de hecho si funciona como me lo indicas, pero no sé como llamarla dentro de un botón y que dicho valor que retorne me lo almacene en una variable.
  #10 (permalink)  
Antiguo 17/02/2011, 13:22
dalfeju
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Modificar una variable global en una función

Les dejo un ejemplo http://dl.dropbox.com/u/14028523/ejemplo.html

Lo que quiero hacer es que cuando se presione el botón cambie 'original' por 'nueva'. Sáquenme del error
  #11 (permalink)  
Antiguo 17/02/2011, 13:36
 
Fecha de Ingreso: diciembre-2010
Ubicación: valencia
Mensajes: 203
Antigüedad: 13 años, 11 meses
Puntos: 11
Respuesta: Modificar una variable global en una función

no te iria mejor algo asi:
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Ejemplo</title>
  5.  
  6. <script type="text/javascript" language="javascript">
  7. function tal(){    
  8.       document.getElementById("uno").innerHTML = "nueva";    
  9. }
  10.  
  11. </head>
  12.  
  13.  
  14. <input type="button" value="Continuar" onclick="tal();"/>
  15. <span id="uno">original</span>
  16. </body>
  17. </html>
  #12 (permalink)  
Antiguo 17/02/2011, 13:51
 
Fecha de Ingreso: diciembre-2009
Ubicación: Valparaíso
Mensajes: 118
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Modificar una variable global en una función

ufffff.....te pongo los dos casos....

Código HTML:
Ver original
  1. <a href="javascript:tal('1');">Continuar</a>
  2.  
  3. <input type="button" value="Continuar" onclick="tal('1');"/>

caricatos te dijo q estas enviando un entero y tu función comparas un string
  #13 (permalink)  
Antiguo 17/02/2011, 14:02
dalfeju
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Modificar una variable global en una función

enrique4480 si me sirvió, gracias por el dato. Te debo una!

Gracias javiercitox por la aclaración y caricatos por la atención. Saludos!
  #14 (permalink)  
Antiguo 17/02/2011, 14:30
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: Modificar una variable global en una función

Cita:
Iniciado por javiercitox Ver Mensaje
caricatos te dijo q estas enviando un entero y tu función comparas un string
En realidad:
Código Javascript:
Ver original
  1. var bool = 1=='1'; // true
Creo que es porque compara el valor y no el typeof, pero no sé si es así exactamente. Para solucionarlo puedes usar ===.
Código Javascript:
Ver original
  1. var bool = 1==='1'; // false
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #15 (permalink)  
Antiguo 17/02/2011, 14:35
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Modificar una variable global en una función

Cita:
Creo que es porque compara el valor y no el typeof, pero no sé si es así exactamente.
estas en lo correcto... la comparacion se hace en base al valor. pero antes, se lleva a cabo el proceso de conversion puesto que son tipos distintos. en este caso, no recuerdo bien, el integer es convertido a string.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: global, modificar, variables
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 08:23.