Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/08/2009, 20:32
locoxchacho
 
Fecha de Ingreso: septiembre-2008
Ubicación: Nuñez, Capital Federal
Mensajes: 423
Antigüedad: 15 años, 8 meses
Puntos: 1
Problema recorriendo Array

Buenas Noches a todos!

Tengo un problema que no se porque se da, pero la verdad que llevo bastante tiempo intentado arreglaro. Primero pense que era problema del codigo PHP que utilizo para armar dinamicamente el JS, pero luego me di cuenta que lo que no funciona realmente es el codigo JS.

La cuestion es la siguiente: yo tengo un array con varios nombres que recojo de una BD, y mi idea es recorrerlo mediante un for. Hasta aqui, todo sencillo. El problema es que, esto sencillo, no funciona!...

Al ejecutar el codigo, me aparece un error, diciendo que se intento acceder a un indice del array fuera del rango permitido, es decir, si el largo del array es de 10, intente acceder a las posicion 10, u la 11... en fin, ese es mi problema. He aqui mi codigo (ya procesado por el servidor, es decir, el js propiamente dicho, sin nada de PHP):

Código:
// menu principal
var prin = ['nosotros','portfolio','experimental','contacto'];
// menues secundarios
var sec = ['logos','impresos','web','ilustraciones'];
// menues terciarios
var ter = ['impresos1','impresos2','impresos3','impresos4','impresos5','impresos6','impresos7','impresos8','impresos9','logos11','impresos12','impresos13','impresos14','impresos15','impresos16','impresos17','impresos18','impresos19','impresos20','impresos21','impresos22','impresos23','impresos24'];


// funcion que cambia de clase segun la opcion

function menu_prin(div){
	borrar();

	for (i=0;i<prin.length;i++){

		if(prin[i]==div){

			document.getElementById(prin[i]).className = 'current';
			if(div=="portfolio"){$('#oculto').slideDown('slow');}

		}else{

			document.getElementById(prin[i]).className = '';
			if(div!="portfolio"){$('#oculto').slideUp('slow');}

		}

	}
	menu_secu(div);

}
function menu_secu(div){
	borra_sub();
	for(i=0;i<sec.length;i++){
		if(sec[i]==div){
			document.getElementById(sec[i]).className = 'current';
			$('#oc'+div).slideDown('slow');
		} else{
			document.getElementById(sec[i]).className = '';
			$('#oc'+sec[i]).slideUp('slow');
		}
	}
}
function menu_ter(div){
	for(i=0;i<ter.length;i++){
		if(ter[i]==div){

			document.getElementById(ter[i]).className = 'current';

		}else{

			document.getElementById(ter[i]).className = '';

		}
	}
}
function borrar(){
	for (i=0;i<prin.length;i++){

		document.getElementById(prin[i]).className = '';
	}
	for (i=0;i<sec.length;i++){

		document.getElementById(sec[i]).className = '';
	}
	borra_sub();
}
function borra_sub(){
	for (i=0;i<ter.length;i++){

		document.getElementById(ter[i]).className = '';
	}
}

El array en cuestion es ter, y la funcion que me da error es borra_sub, que recorre ter a partir de su len, pero por x motivos, no funciona correctamente.

Alguna ayuda??

Desde ya, muchas gracias!!

Pablo.