Foros del Web » Programando para Internet » Javascript »

Problema trabajando con divs y bucles

Estas en el tema de Problema trabajando con divs y bucles en el foro de Javascript en Foros del Web. Saludos, estoy programando un script donde al hacer un click sobre varias opciones, se active un evento con un onclick que ejecute la siguiente función, ...
  #1 (permalink)  
Antiguo 02/02/2009, 04:30
 
Fecha de Ingreso: septiembre-2006
Mensajes: 4
Antigüedad: 17 años, 7 meses
Puntos: 0
Problema trabajando con divs y bucles

Saludos, estoy programando un script donde al hacer un click sobre varias opciones, se active un evento con un onclick que ejecute la siguiente función, que rellenará una celda de una tabla que contiene un div con varios valores de un array, distinto según la opción que se haya seleccionado.
El problema es que cuando lo intento meter dentro del div con un innerHTML en vez de todo el contenido del array me muestra sólo el último resultado del bucle. He estado probando con document.write() y hecho así se ejecuta correctamente, pero el mismo código dentro del innerHTML no hay manera :) No sé si es por que habrá alguna limitación. Si es así, ¿hay alguna alternativa?

Este es el código de la funcion que estoy usando:

Código:
var array1= new Array(2)
array1[0]="Opcion 1 Array 1";array1[1]="Opcion 1 Array 2";
var array2= new Array(3)
array2[0]="Opcion 2 Array 1";array2[1]="Opcion 2 Array 2";array2[2]="Opcion 3 Array 2";



function cambiasaga(seleccio)
{
	var texto = seleccio.toLowerCase().replace(/ /g,'');
	array = eval(texto);
	var capa = document.getElementById('capalista');
	for(i=0;i<array.length;i++){
	textofinal = "<a href=url.php?j="+eval(texto+"["+i+"]")+">"+eval(texto+"["+i+"]")+"</a><br/>";
	capa.innerHTML=textofinal
	}	
}

/*Y más abajo, para elegir las distintas opciones, con un onclick sobre otro div. He puesto el código del div solo, pero en realidad estan dentro de la celda de una tabla/*

	<div style="cursor:pointer" onclick="cambiasaga(this.innerHTML)" id="Array 1">Array 1</div>
	<div style="cursor:pointer" onclick="cambiasaga(this.innerHTML)" id="Array 2">Array 2</div>
	
/*Y por último este es el div donde quiero hacer aparecer los valores del array/*

<div id="capalista"></div>
Saludos :)
  #2 (permalink)  
Antiguo 02/02/2009, 05:34
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problema trabajando con divs y bucles

Código HTML:
var array1= new Array(2)
array1[0]="Opcion 1 Array 1";array1[1]="Opcion 1 Array 2";
var array2= new Array(3)
array2[0]="Opcion 2 Array 1";array2[1]="Opcion 2 Array 2";array2[2]="Opcion 3 Array 2";



function cambiasaga(seleccio)
{
	var texto = seleccio.toLowerCase().replace(/ /g,'');
	array = eval(texto);
	var capa = document.getElementById('capalista');
	for(i=0;i<array.length;i++){
	textofinal = "<a href=url.php?j="+eval(texto+"["+i+"]")+">"+eval(texto+"["+i+"]")+"</a><br/>";
	capa.innerHTML+=textofinal;  //<--- aqui  +=
	}	
}

/*Y más abajo, para elegir las distintas opciones, con un onclick sobre otro div. He puesto el código del div solo, pero en realidad estan dentro de la celda de una tabla/*

	<div style="cursor:pointer" onclick="cambiasaga(this.innerHTML)" id="Array 1">Array 1</div>
	<div style="cursor:pointer" onclick="cambiasaga(this.innerHTML)" id="Array 2">Array 2</div>
	
/*Y por último este es el div donde quiero hacer aparecer los valores del array/*

<div id="capalista"></div> 
Creo que con esto basta!!!

El problema es que lo que hacias en cada vuelta del bucle era substituir todo el contenido de innerHTML...

Con el += lo que hara sera agregar al final del contenido lo que aporte cada vuelta del bucle....

No lo he hecho nunca directamente contra innerHTML ... si no funciona puedes hacerlo con una variable de texto y una vez finalizado el bucle pasas la variable al innerHTML.


Código:
for(i=0;i<array.length;i++){
textofinal += "<a href=url.php?j="+eval(texto+"["+i+"]")+">"+eval(texto+"["+i+"]")+"</a><br/>";
}
capa.innerHTML=textofinal;
Quim

Última edición por quimfv; 02/02/2009 a las 05:40
  #3 (permalink)  
Antiguo 02/02/2009, 06:06
 
Fecha de Ingreso: septiembre-2006
Mensajes: 4
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Problema trabajando con divs y bucles

Ese era el problema, ya funciona. Muchas gracias.
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 21:17.