Autor Tema: JavaScript diferencia entre ámbito global y local ejemplo innerHTML CU01138E  (Leído 2092 veces)

fran70

  • Sin experiencia
  • *
  • Mensajes: 2
    • Ver Perfil
Aqui dejo la entrega del ejercicio CU01138E del curso de programación web con JavaScript. Me cuesta bastante crear la logica para resolver problemas, me complico yo solo... luego tengo que dar vueltas al codigo para intentar limpiar y dejarlo legible... poco a poco y practicando ire asimilando conceptos. Saludos.

Código: [Seleccionar]
<!doctype html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Ejercicio Tema 38 - innerHTML...(CU01138E)</title>
    <style>
        body{
            font-family: Arial;
            text-align: center;
        }
        #principal {
            width: 200px;
            height: 200px;
            margin: 50px auto;
            border: 1px solid black;
            position: relative;
            box-sizing: content-box;
        }
        #principal>div{
            width: 100px;
            height: 100px;
            border: 1px solid black;
            line-height: 100px;
            float: left;
            box-sizing: border-box;
        }
        button{
            display: block;
            margin: 20px auto;
        }
    </style>
    <script>
      var contador = 1;
      var divs = document.getElementsByTagName('div');
      var avanzar = function () {
        switch (contador) {
          case 1:
            divs[1].style.color = 'white';
            divs[1].style.backgroundColor = 'black';
            divs[1].innerHTML = 'El';
            contador++;
            break;
          case 2:
            divs[2].innerHTML = 'Poder';
            contador++;
            break;
          case 3:
            divs[3].innerHTML = 'de';
            contador++;
            break;
          case 4:
            divs[4].style.backgroundColor = 'yellow';
            divs[4].innerHTML = 'JavaScript';
            contador++;
            break;
          case 5:
            var msg = document.createElement('div');
            msg.style.fontSize = '.8em';
            msg.innerHTML =  '<h2>LO SIENTO, PERO NO ES POSIBLE AVANZAR MAS</h2>';
            document.body.appendChild(msg);
            contador++;
            break;
          default:
        }
      }
    </script>
</head>
<body>
<div id="principal">
    <div>?</div>
    <div>?</div>
    <div>?</div>
    <div>?</div>
</div>
<button onclick="avanzar()">Avanzar</button>
</body>
</html>
« Última modificación: 05 de Abril 2017, 21:36 por Ogramar »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:JavaScript:Tema 38 innerHTML - CU01138E
« Respuesta #1 en: 04 de Febrero 2017, 14:05 »
Hola fran70.

Tu ejercicio está bastante bien resuelto.
Comentarte sobre esta línea:
Código: [Seleccionar]
var divs = document.getElementsByTagName('div');
Lo ideal sería que estuviese dentro de la función avanzar ya que solo es usada desde dentro de esta función y no necesitamos tenerla declarada con ámbito global.


Saludos.  ;D

fran70

  • Sin experiencia
  • *
  • Mensajes: 2
    • Ver Perfil
Re:JavaScript:Tema 38 innerHTML - CU01138E
« Respuesta #2 en: 04 de Febrero 2017, 14:43 »
Pues si tienes toda la razon, es donde deberia estar: como variable local de la funcion.
Muchas gracias.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".