Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] ¿Me ayudan con este script?

Estas en el tema de ¿Me ayudan con este script? en el foro de Javascript en Foros del Web. Buenas a todos, bueno lo primero he de decir que empecé hace muy poco a programar en javascript y bueno, tengo una radio en la ...
  #1 (permalink)  
Antiguo 12/11/2013, 20:57
Avatar de Crishe  
Fecha de Ingreso: noviembre-2013
Ubicación: España
Mensajes: 2
Antigüedad: 11 años
Puntos: 0
Pregunta ¿Me ayudan con este script?

Buenas a todos, bueno lo primero he de decir que empecé hace muy poco a programar en javascript y bueno, tengo una radio en la que quiero que salga a cada momento a qué DJ le toca emitir, esto solo lo puedo conseguir haciendo un horario como vais a ver a continuación en el script.

El problema es que el texto se muestra repetidamente uno detrás de otro por que está hecho con "document.write" y al utilizar setTimeout("directo()",1000) pasa eso... cada segundo se pone el texto detrás de otro, podéis comprobarlo vosotros mismos.. y bien, dicho esto... mi pregunta es: ¿Como puedo hacer para que no se muestre el texto detrás de otro?.

Aquí el script:
(Faltan los días sábado y domingo por que no me cabe para postear, así que los quité)

Código HTML:
<html>
<head>
</head>
<body>
<body onload="directo()">
<SCRIPT LANGUAGE="JavaScript"> 

function directo(){ 
var date = new Date()
var day = date.getDay()
var hr = date.getHours()

// Lunes
if ((hr == 1) && (day == 1)) document.write("AutoDJ")
if ((hr == 2) && (day == 1)) document.write("AutoDJ")
if ((hr == 3) && (day == 1)) document.write("AutoDJ")
if ((hr == 4) && (day == 1)) document.write("AutoDJ")
if ((hr == 5) && (day == 1)) document.write("AutoDJ")
if ((hr == 6) && (day == 1)) document.write("AutoDJ")
if ((hr == 7) && (day == 1)) document.write("AutoDJ")
if ((hr == 8) && (day == 1)) document.write("AutoDJ")
if ((hr == 9) && (day == 1)) document.write("AutoDJ")
if ((hr == 10) && (day == 1)) document.write("AutoDJ")
if ((hr == 11) && (day == 1)) document.write("AutoDJ")
if ((hr == 12) && (day == 1)) document.write("AutoDJ")
if ((hr == 13) && (day == 1)) document.write("AutoDJ")
if ((hr == 14) && (day == 1)) document.write("AutoDJ")
if ((hr == 15) && (day == 1)) document.write("AutoDJ")
if ((hr == 16) && (day == 1)) document.write("AutoDJ")
if ((hr == 17) && (day == 1)) document.write("AutoDJ")
if ((hr == 18) && (day == 1)) document.write("AutoDJ")
if ((hr == 19) && (day == 1)) document.write("Miguel Electrico")
if ((hr == 20) && (day == 1)) document.write("Nachek Dj")
if ((hr == 21) && (day == 1)) document.write("AutoDJ")
if ((hr == 22) && (day == 1)) document.write("AutoDJ")
if ((hr == 23) && (day == 1)) document.write("AutoDJ")
if ((hr == 0) && (day == 1)) document.write("AutoDJ")

// Martes
if ((hr == 1) && (day == 2)) document.write("AutoDJ")
if ((hr == 2) && (day == 2)) document.write("AutoDJ")
if ((hr == 3) && (day == 2)) document.write("AutoDJ")
if ((hr == 4) && (day == 2)) document.write("AutoDJ")
if ((hr == 5) && (day == 2)) document.write("AutoDJ")
if ((hr == 6) && (day == 2)) document.write("AutoDJ")
if ((hr == 7) && (day == 2)) document.write("AutoDJ")
if ((hr == 8) && (day == 2)) document.write("AutoDJ")
if ((hr == 9) && (day == 2)) document.write("AutoDJ")
if ((hr == 10) && (day == 2)) document.write("AutoDJ")
if ((hr == 11) && (day == 2)) document.write("AutoDJ")
if ((hr == 12) && (day == 2)) document.write("AutoDJ")
if ((hr == 13) && (day == 2)) document.write("AutoDJ")
if ((hr == 14) && (day == 2)) document.write("AutoDJ")
if ((hr == 15) && (day == 2)) document.write("AutoDJ")
if ((hr == 16) && (day == 2)) document.write("AutoDJ")
if ((hr == 17) && (day == 2)) document.write("AutoDJ")
if ((hr == 18) && (day == 2)) document.write("Dj Motoloco")
if ((hr == 19) && (day == 2)) document.write("AutoDJ")
if ((hr == 20) && (day == 2)) document.write("AutoDJ")
if ((hr == 21) && (day == 2)) document.write("AutoDJ")
if ((hr == 22) && (day == 2)) document.write("AutoDJ")
if ((hr == 23) && (day == 2)) document.write("AutoDJ")
if ((hr == 0) && (day == 2)) document.write("AutoDJ")

// Miercoles
if ((hr == 1) && (day == 3)) document.write("AutoDJ")
if ((hr == 2) && (day == 3)) document.write("AutoDJ")
if ((hr == 3) && (day == 3)) document.write("AutoDJ")
if ((hr == 4) && (day == 3)) document.write("AutoDJ")
if ((hr == 5) && (day == 3)) document.write("AutoDJ")
if ((hr == 6) && (day == 3)) document.write("AutoDJ")
if ((hr == 7) && (day == 3)) document.write("AutoDJ")
if ((hr == 8) && (day == 3)) document.write("AutoDJ")
if ((hr == 9) && (day == 3)) document.write("AutoDJ")
if ((hr == 10) && (day == 3)) document.write("AutoDJ")
if ((hr == 11) && (day == 3)) document.write("AutoDJ")
if ((hr == 12) && (day == 3)) document.write("AutoDJ")
if ((hr == 13) && (day == 3)) document.write("AutoDJ")
if ((hr == 14) && (day == 3)) document.write("AutoDJ")
if ((hr == 15) && (day == 3)) document.write("AutoDJ")
if ((hr == 16) && (day == 3)) document.write("AutoDJ")
if ((hr == 17) && (day == 3)) document.write("AutoDJ")
if ((hr == 18) && (day == 3)) document.write("Dj Motoloco")
if ((hr == 19) && (day == 3)) document.write("Miguel Electrico")
if ((hr == 20) && (day == 3)) document.write("Nachek Dj")
if ((hr == 21) && (day == 3)) document.write("AutoDJ")
if ((hr == 22) && (day == 3)) document.write("AutoDJ")
if ((hr == 23) && (day == 3)) document.write("AutoDJ")
if ((hr == 0) && (day == 3)) document.write("AutoDJ")

// Jueves
if ((hr == 1) && (day == 4)) document.write("AutoDJ")
if ((hr == 2) && (day == 4)) document.write("AutoDJ")
if ((hr == 3) && (day == 4)) document.write("AutoDJ")
if ((hr == 4) && (day == 4)) document.write("AutoDJ")
if ((hr == 5) && (day == 4)) document.write("AutoDJ")
if ((hr == 6) && (day == 4)) document.write("AutoDJ")
if ((hr == 7) && (day == 4)) document.write("AutoDJ")
if ((hr == 8) && (day == 4)) document.write("AutoDJ")
if ((hr == 9) && (day == 4)) document.write("AutoDJ")
if ((hr == 10) && (day == 4)) document.write("AutoDJ")
if ((hr == 11) && (day == 4)) document.write("AutoDJ")
if ((hr == 12) && (day == 4)) document.write("AutoDJ")
if ((hr == 13) && (day == 4)) document.write("AutoDJ")
if ((hr == 14) && (day == 4)) document.write("AutoDJ")
if ((hr == 15) && (day == 4)) document.write("AutoDJ")
if ((hr == 16) && (day == 4)) document.write("AutoDJ")
if ((hr == 17) && (day == 4)) document.write("Dj Sistern & Dj Piranha")
if ((hr == 18) && (day == 4)) document.write("Dj Motoloco")
if ((hr == 19) && (day == 4)) document.write("Miguel Electrico")
if ((hr == 20) && (day == 4)) document.write("AutoDJ")
if ((hr == 21) && (day == 4)) document.write("AutoDJ")
if ((hr == 22) && (day == 4)) document.write("AutoDJ")
if ((hr == 23) && (day == 4)) document.write("AutoDJ")
if ((hr == 0) && (day == 4)) document.write("AutoDJ")

// Viernes
if ((hr == 1) && (day == 5)) document.write("AutoDJ")
if ((hr == 2) && (day == 5)) document.write("AutoDJ")
if ((hr == 3) && (day == 5)) document.write("AutoDJ")
if ((hr == 4) && (day == 5)) document.write("AutoDJ")
if ((hr == 5) && (day == 5)) document.write("AutoDJ")
if ((hr == 6) && (day == 5)) document.write("AutoDJ")
if ((hr == 7) && (day == 5)) document.write("AutoDJ")
if ((hr == 8) && (day == 5)) document.write("AutoDJ")
if ((hr == 9) && (day == 5)) document.write("AutoDJ")
if ((hr == 10) && (day == 5)) document.write("AutoDJ")
if ((hr == 11) && (day == 5)) document.write("AutoDJ")
if ((hr == 12) && (day == 5)) document.write("AutoDJ")
if ((hr == 13) && (day == 5)) document.write("AutoDJ")
if ((hr == 14) && (day == 5)) document.write("AutoDJ")
if ((hr == 15) && (day == 5)) document.write("AutoDJ")
if ((hr == 16) && (day == 5)) document.write("AutoDJ")
if ((hr == 17) && (day == 5)) document.write("AutoDJ")
if ((hr == 18) && (day == 5)) document.write("Miguel Electrico")
if ((hr == 19) && (day == 5)) document.write("AutoDJ")
if ((hr == 20) && (day == 5)) document.write("Airon Diaz")
if ((hr == 21) && (day == 5)) document.write("SoundFactory")
if ((hr == 22) && (day == 5)) document.write("AutoDJ")
if ((hr == 23) && (day == 5)) document.write("AutoDJ")
if ((hr == 0) && (day == 5)) document.write("AutoDJ")
setTimeout("directo()",1000)
}
</SCRIPT>

</body>
</html> 
  #2 (permalink)  
Antiguo 12/11/2013, 23:47
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 18 años
Puntos: 56
Respuesta: ¿Me ayudan con este script?

Si estás aprendiendo Javascript, deberías leer más sobre el funcionamiento de búcles, matrices y document.write.
document.write te escribirá al final del documento en este caso, si deseas que un contenido que generas en una cadena salga en un mismo lugar del HTML, deberías crear un identificador en un objeto HTML, por ejemplo (DIV, p, spam, etc ...en el ejemplo use <b>), tambien asignarle el atributo id= , que sirve como identificador del tag HTML, te servirá para luego captarlo con JavaScript.

No abuses de los condicionales, si vas a usar una condición que hace lo mismo en varias ocasiones, puedes usar búcles (while,for), lee a fondo sobre ese tema, te ahorrará mucho código.

Aquí te dejo un ejemplo, en este caso usé matrices, se puede hacer de otra forma con búcles pero este método se te hará más fácil para ti

Código HTML:
Ver original
  1. </head>
  2. <body onload="directo()">
  3.  
  4. <div>DJ actual: <b id="queDJletoca">Cargando...</b></div>
  5.  
  6. <SCRIPT LANGUAGE="JavaScript">
  7.  
  8. var DJs =
  9.     {
  10.         0: "AutoDJ",
  11.         1: "Miguel Electrico",
  12.         2: "Nachek Dj",
  13.         3: "DJ Motoloco",
  14.         4: "Dj Sistern & Dj Piranha",
  15.         5: "Airon Diaz",
  16.         6: "SoundFactory"
  17.     }
  18.    
  19. var Horarios =
  20.     {
  21.         "19-1": DJs[1],     "19-3": DJs[1],     "19-4": DJs[1],     "19-5": DJs[1],
  22.         "20-1": DJs[2],     "20-3": DJs[2],     "18-2": DJs[3],     "18-3": DJs[3],
  23.         "18-4": DJs[3],     "17-4": DJs[4],     "20-5": DJs[5],     "21-5": DJs[6]
  24.     }
  25.  
  26. function directo(){
  27.     var donde = document.getElementById("queDJletoca"),
  28.     date = new Date(),
  29.     dia = date.getDay(),
  30.     hora = date.getHours();
  31.    
  32.     var horaYdia = hora + "-" + dia; //horaYdia ejem: 20-3 mostrará DJs[2] que es Nachek Dj
  33.  
  34.     var existeHorarioDeDJ = (typeof(Horarios[horaYdia]) != "undefined"); //comprobar si hay un DJ para el horario actual
  35.    
  36.     if(existeHorarioDeDJ){
  37.         donde.innerHTML = Horarios[horaYdia] //ejem: "20-3" mostrará DJs[2] que es Nachek Dj
  38.     }else{
  39.         donde.innerHTML = DJs[0] //Muestra AutoDJ
  40.     }
  41.        
  42.     setTimeout("directo()",1000);
  43. }
  44.  

PD: Para estos casos también lee más sobre jQuery.
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #3 (permalink)  
Antiguo 13/11/2013, 07:25
Avatar de Crishe  
Fecha de Ingreso: noviembre-2013
Ubicación: España
Mensajes: 2
Antigüedad: 11 años
Puntos: 0
Respuesta: ¿Me ayudan con este script?

Cita:
Iniciado por America|UNK Ver Mensaje
Si estás aprendiendo Javascript, deberías leer más sobre el funcionamiento de búcles, matrices y document.write.
document.write te escribirá al final del documento en este caso, si deseas que un contenido que generas en una cadena salga en un mismo lugar del HTML, deberías crear un identificador en un objeto HTML, por ejemplo (DIV, p, spam, etc ...en el ejemplo use <b>), tambien asignarle el atributo id= , que sirve como identificador del tag HTML, te servirá para luego captarlo con JavaScript.

No abuses de los condicionales, si vas a usar una condición que hace lo mismo en varias ocasiones, puedes usar búcles (while,for), lee a fondo sobre ese tema, te ahorrará mucho código.

Aquí te dejo un ejemplo, en este caso usé matrices, se puede hacer de otra forma con búcles pero este método se te hará más fácil para ti

Código HTML:
Ver original
  1. </head>
  2. <body onload="directo()">
  3.  
  4. <div>DJ actual: <b id="queDJletoca">Cargando...</b></div>
  5.  
  6. <SCRIPT LANGUAGE="JavaScript">
  7.  
  8. var DJs =
  9.     {
  10.         0: "AutoDJ",
  11.         1: "Miguel Electrico",
  12.         2: "Nachek Dj",
  13.         3: "DJ Motoloco",
  14.         4: "Dj Sistern & Dj Piranha",
  15.         5: "Airon Diaz",
  16.         6: "SoundFactory"
  17.     }
  18.    
  19. var Horarios =
  20.     {
  21.         "19-1": DJs[1],     "19-3": DJs[1],     "19-4": DJs[1],     "19-5": DJs[1],
  22.         "20-1": DJs[2],     "20-3": DJs[2],     "18-2": DJs[3],     "18-3": DJs[3],
  23.         "18-4": DJs[3],     "17-4": DJs[4],     "20-5": DJs[5],     "21-5": DJs[6]
  24.     }
  25.  
  26. function directo(){
  27.     var donde = document.getElementById("queDJletoca"),
  28.     date = new Date(),
  29.     dia = date.getDay(),
  30.     hora = date.getHours();
  31.    
  32.     var horaYdia = hora + "-" + dia; //horaYdia ejem: 20-3 mostrará DJs[2] que es Nachek Dj
  33.  
  34.     var existeHorarioDeDJ = (typeof(Horarios[horaYdia]) != "undefined"); //comprobar si hay un DJ para el horario actual
  35.    
  36.     if(existeHorarioDeDJ){
  37.         donde.innerHTML = Horarios[horaYdia] //ejem: "20-3" mostrará DJs[2] que es Nachek Dj
  38.     }else{
  39.         donde.innerHTML = DJs[0] //Muestra AutoDJ
  40.     }
  41.        
  42.     setTimeout("directo()",1000);
  43. }
  44.  

PD: Para estos casos también lee más sobre jQuery.
me habia vuelto loco intentando solucionar el problema, y me lo has resuelto enseguida, esta claro que tengo que estudiar javascript más a fondo, tambien leeré más sobre jQuery. Saludos y muchas gracias!

Etiquetas: document, java, js, radio, settimeout, write
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:57.