Foros del Web » Programando para Internet » Javascript »

Función para mostrar los elementos siguiente y anterior de un array

Estas en el tema de Función para mostrar los elementos siguiente y anterior de un array en el foro de Javascript en Foros del Web. Tengo un array con varios elementos y me los muestra de tres en tres, entonces necesito una función asociada a un botón, para que cada ...
  #1 (permalink)  
Antiguo 13/06/2013, 01:19
 
Fecha de Ingreso: mayo-2013
Mensajes: 38
Antigüedad: 11 años
Puntos: 0
Información Función para mostrar los elementos siguiente y anterior de un array

Tengo un array con varios elementos y me los muestra de tres en tres, entonces necesito una función asociada a un botón, para que cada vez que pulse este me actualice los datos y me muestre los siguientes 3 elementos, así hasta llegar al final y al llegar al último me salga un alert avisándome

<script type="text/javascript">
function escribe() {
var semana = new Array("Lunes","Martes","Miércoles","Jueves","Viern es","Sábado","Domingo");
texto = document.getElementById("dias");
for (i=0;i<3;i++){
texto.innerHTML += semana[i]+ "<br/>";
}
}
</script>

<input type="button" value="Pulsar" onmousedown="escribe()">
<p id="dias"></p>
  #2 (permalink)  
Antiguo 13/06/2013, 01:30
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: Función para mostrar los elementos siguiente y anterior de un array

Hola mira aquí te prepare un ejemplo:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. var inicio = 0;
  3. var limite = 3;
  4.  
  5. function escribe() {
  6. var semana = new Array("Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo");
  7. texto = document.getElementById("dias");
  8. for (i=inicio;i<limite;i++){
  9. if (i==7){
  10.     alert('Fin de la cuenta');
  11.     return;
  12.     }
  13. else {
  14. texto.innerHTML += semana[i]+ "<br/>";
  15. }
  16. }
  17. inicio +=3;
  18. limite +=3;
  19. }
  20. </script>

Básicamente lo que se basa es en preparar unas variables fuera de la función y dentro de ella cada vez que se usan aumentan 3 y además en el bucle for comprobamos siempre si ha llegado al domingo y si es así te muestra el alert y sale del bucle.

Saludos!
__________________
No hay preguntas tontas, sino tontos que no preguntan.
  #3 (permalink)  
Antiguo 13/06/2013, 02:24
 
Fecha de Ingreso: mayo-2013
Mensajes: 38
Antigüedad: 11 años
Puntos: 0
Información Respuesta: Función para mostrar los elementos siguiente y anterior de un array

He cambiado el if (i==7){
por
if (i==semana.length){
para que me coja el programa directamente el nº de elementos en vez de dárselos yo.

Ahora lo que te quería comentar es que cuando pulsando el botón de siguiente llegas al último elemento te sale el Alert, pero si vuelves a pulsar el botón te crea de nuevo el domingo y cada una de las veces que lo pulses y de lo que se trata es que cuando llegues al final ya no te lo cree más, se quede ahí tranquilo sin hacer nada.
Y otra cosilla más, yo lo que necesito también es que me actualice los datos, no que los añada, o sea, que al pulsar el botón sustituya los datos antiguos, por tanto que estos desaparezcan y sean sustituidos por los nuevos.
  #4 (permalink)  
Antiguo 13/06/2013, 02:25
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: Función para mostrar los elementos siguiente y anterior de un array

¿Estás seguro de que lo copiaste tal cual? Le hice un cambio pasados 5minutos de la publicación solucionando ese último problema.

Saludos!


PD: Edito, perdón ese último de añadir me faltó vuelvo a copiar tu script y lo soluciono y te publico.
__________________
No hay preguntas tontas, sino tontos que no preguntan.
  #5 (permalink)  
Antiguo 13/06/2013, 08:00
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: Función para mostrar los elementos siguiente y anterior de un array

Disculpa por la tardanza, pero estuve ocupado aquí tienes el script:

Código Javascript:
Ver original
  1. var inicio = 0;
  2. var limite = 3;
  3.  
  4. function escribe() {
  5.    
  6. var semana = new Array("Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo");
  7. texto = document.getElementById("dias");
  8.  
  9. if (inicio<=6){
  10. for (i=inicio;i<limite;i++){
  11.     texto.innerHTML += semana[i]+ "<br/>";
  12.     }
  13. }
  14. else{
  15.     window.alert('Fin de la cuenta');  
  16. }
  17.  
  18.  
  19. if (inicio < 3 && limite < 6){
  20.     inicio +=3;
  21.     limite +=3;
  22. }
  23. else if (inicio == 3 && limite == 6){
  24.     inicio+=3;
  25.     limite++;
  26. }
  27. else{
  28. inicio++;
  29. }
  30.  
  31.  
  32. }

Saludos!
__________________
No hay preguntas tontas, sino tontos que no preguntan.
  #6 (permalink)  
Antiguo 13/06/2013, 14:04
 
Fecha de Ingreso: mayo-2013
Mensajes: 38
Antigüedad: 11 años
Puntos: 0
Respuesta: Función para mostrar los elementos siguiente y anterior de un array

Estás super disculpado por la tardanza y muy agradecido por lo que estás haciendo.

Siguiendo sobre el tema:

Yo lo que necesito también es que al pulsar el botón de siguiente me actualice los datos, no que los añada a continuación, o sea, que al pulsar el botón sustituya los datos antiguos, por tanto que estos desaparezcan y sean sustituidos por los nuevos, espero que se pueda hacer y que no sea muy complicado.
  #7 (permalink)  
Antiguo 13/06/2013, 14:08
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: Función para mostrar los elementos siguiente y anterior de un array

Hola, para eso solo tienes que agregar esta línea al principio de la función para que se resetee cada vez que inicias esta:

texto.innerHTML = '';

Quedaría así:

Código Javascript:
Ver original
  1. var inicio = 0;
  2. var limite = 3;
  3.  
  4. function escribe() {
  5.    
  6. var semana = new Array("Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo");
  7. texto = document.getElementById("dias");
  8. texto.innerHTML = '';
  9.  
  10. if (inicio<=6){
  11. for (i=inicio;i<limite;i++){
  12.     texto.innerHTML += semana[i]+ "<br/>";
  13.     }
  14. }
  15. else{
  16.     window.alert('Fin de la cuenta');  
  17. }
  18.  
  19.  
  20. if (inicio < 3 && limite < 6){
  21.     inicio +=3;
  22.     limite +=3;
  23. }
  24. else if (inicio == 3 && limite == 6){
  25.     inicio+=3;
  26.     limite++;
  27. }
  28. else{
  29. inicio++;
  30. }
  31.  
  32.  
  33. }
__________________
No hay preguntas tontas, sino tontos que no preguntan.
  #8 (permalink)  
Antiguo 16/06/2013, 12:45
 
Fecha de Ingreso: mayo-2013
Mensajes: 38
Antigüedad: 11 años
Puntos: 0
Información Respuesta: Función para mostrar los elementos siguiente y anterior de un array

Hola, esto no es exactamente lo que yo quiero, lo que yo busco es que al cargar la página SI me aparezcan los tres primeros elementos, y según voy pulsando el botón me vaya sustituyendo los datos anteriores por los nuevos, o sea, borrar unos y poner los siguientes en su lugar, hasta llegar al último día y cuando llegue ahí me salga el Alert pero deje ese último elemento en pantalla, o sea, que ese no lo borre.

Etiquetas: elementos, html, input, siguiente
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:13.