Foros del Web » Programando para Internet » Javascript »

funcion de ciclo dentro de otra funcion de ciclo

Estas en el tema de funcion de ciclo dentro de otra funcion de ciclo en el foro de Javascript en Foros del Web. Saludos Tengo mi codigo de esta forma Cita: function OcultarColumna(MesCol) { for(i=0;i<200;i++) { if(document.getElementById(MesCol+''+i)) { if(document.getElementById(MesCol).checked) { document.getElementById(MesCol+''+i).style.display =''; } else { document.getElementById(MesCol+''+i).style.display ='none'; } ...
  #1 (permalink)  
Antiguo 07/11/2012, 12:54
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
funcion de ciclo dentro de otra funcion de ciclo

Saludos

Tengo mi codigo de esta forma

Cita:
function OcultarColumna(MesCol)
{
for(i=0;i<200;i++)
{
if(document.getElementById(MesCol+''+i))
{
if(document.getElementById(MesCol).checked)
{
document.getElementById(MesCol+''+i).style.display ='';
}
else
{
document.getElementById(MesCol+''+i).style.display ='none';
}
}
}
return true;
}
function mostrartodo(ChkTodos)
{
var Meses="Ene-Feb-Mar-Abr-May-Jun-Jul-Ago-Sep-Oct-Nov-Dic";
IDMes=Meses.split('-');
alert(IDMes.length);
for(i=0;i<IDMes.length;i++)
{
if(document.getElementById(ChkTodos).checked)
{
document.getElementById(IDMes[i]).checked=true;
}
else
{
document.getElementById(IDMes[i]).checked=false;
}
OcultarColumna(IDMes[i]);
}
}
son dos funciones que individualmente corren correctamente pero cuando ingreso la primera (la que esta en rojo) dentro de la segunta
solo ingresa una vez al ciclo y no continua, no marca error, al colocar el alert (que esta en rojo) me devuelve la cantidad correcta

alguien que pueda explicarme que sucede?
se necesita reinciar o limpiarse la funcion o algo asi?

de antemano gracias
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #2 (permalink)  
Antiguo 07/11/2012, 13:12
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: funcion de ciclo dentro de otra funcion de ciclo

Te recomiendo primero usar cosole.log para depurar. También identar el código, que así es complicado leerlo. Y firebug para ver si hay errores, ya que así nada más no noto nada anormal, por cierto, no es necesario concatenar la cadena vacía +''+
  #3 (permalink)  
Antiguo 07/11/2012, 13:32
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: funcion de ciclo dentro de otra funcion de ciclo

gracias
no marcaba error en firebug, el problema era logico , uso la misma varibale incrementadora en ambas funciones "i" fue cuestion de cambiar alguno de "i" a "j" u otro .....

la concatenacion la uso por que aveces los id son numericos (aparte del incrementador) lo que me la sumaria

gracias por el tiempo
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #4 (permalink)  
Antiguo 07/11/2012, 14:09
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: funcion de ciclo dentro de otra funcion de ciclo

Un consejo: al usar de esa manera las variables dentro del for, quedan como si fueran globales. para evitarlo, puedes usar esta sintaxis:

Código Javascript:
Ver original
  1. for(var i=0;i<100;i++)
  2.    funcion();
  3.  
  4.  
  5. function funcion(){
  6.    for var(i=0;i<10;i++){}//esta i ya no está ligada a la anterior.
  7. }
  #5 (permalink)  
Antiguo 07/11/2012, 14:22
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: funcion de ciclo dentro de otra funcion de ciclo

es como redeclararlas o reiniciarlas en la funcion?

Gracias lo usare
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #6 (permalink)  
Antiguo 07/11/2012, 17:04
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
Puntos: 1485
Respuesta: funcion de ciclo dentro de otra funcion de ciclo

buenas,

Cita:
es como redeclararlas o reiniciarlas en la funcion?
ni una ni la otra. cuando utilizas la declaración var para declarar una variable, además de iniciarla, le estás indicando al intérprete que esa variable es local al ámbito (scope) en que se define. por eso, en el ejemplo de @ocp001a las variables no se pisan. no obstante, se enmascaran (también depende como escribas el código). en dicho caso, desde un ámbito no podrías leer la otra variable a no ser que sea global.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: funcion, ciclos
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 11:38.