Autor Tema: JavaScript for in recorrer elementos de colección innerHTML ejemplo CU01135E  (Leído 3244 veces)

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
Hola. Buenas tardes. Dejo el Ejercicio CU01135E For in del tutorial de programación web con javascript.

Código: [Seleccionar]
<!DOCTYPE html>
<html><head><title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">


<script type="text/javascript">

/* ********************************************************** */
/* ********************* EJERCICIO ************************** */
/* ********************************************************** */
function ejemploForIn() {
var r;
r=txtAlert();
var texto = document.getElementById("cuadro");
texto.innerHTML = "";
var msg='Multiplicamos por 3 los numeros introducidos :<br/><br/>';
var dato = [],numero,calcular;
for(i=1;i<=5;i++)
{
dato[i]=prompt("Entre un valor");
}
for(i in dato)
{
numero=Number(dato[i]);
calcular=numero*3;
msg=msg+'El Numero : '+numero+' X 3 = '+calcular+'<br/><br/>';
}
texto.innerHTML = msg;
}
/* ********************************************************** */
/* ********************************************************** */
/* ********************************************************** */
function txtAlert()
{
var texto = document.getElementById('cuadro');
texto.style.backgroundColor='white';
texto.style.width='430px';
texto.style.height='400px';
texto.style.overflow='scroll';
texto.style.marginLeft='20px';
texto.style.border='5px AntiqueWhite solid';
texto.style.float='left'; 

}
function borrar(){

var texto = document.getElementById('cuadro');
texto.innerHTML = '';

var msg=''
texto.style.width='430px';
texto.style.height='15px';
texto.innerHTML = msg;
}
</script>


<style type="text/css">
body {background-color:yellow;
font-family: sans-serif;  }
p {font-size: 20px;
color: maroon;
float: left;
margin:5px;
border: solid black;
padding:5px;}

.boton, .boton2{padding:5px;
margin:15px;
width: 205px;
float:left;
text-align:center;border:solid;
color: white; border-radius: 40px;
background: rgb(202, 60, 60);
box-shadow:5px 5px 10px 5px black;}

.boton:hover,.boton2:hover{background-color:BurlyWood;
box-shadow:5px 5px 10px 5px grey;
color:black;}
 
</style>

</head>
<body>
<div id='cabecera'><h2>Cursos aprenderaprogramar.com</h2><h3>Ejemplo for in JavaScript</h3>
</div>
 
<h3 class='boton' onclick='ejemploForIn()'>Pulsa aquí</h3>
<h3 class='boton2' onclick='borrar()'>Borrar Cuadro</h3>

 
<div id='cuadro'></div>
</body></html>

Adios.
« Última modificación: 29 de Enero 2018, 17:46 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:Solucon al ejercicio CU01134E javascript
« Respuesta #1 en: 29 de Enero 2018, 17:45 »
Buenas, para poner título a los temas, debe hacerse según se indica en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

Este ejercicio se corresponde con la entrega CU01135E del curso (en el título has puesto supongo que por error 34E en lugar de 35E, lo he corregido)

El código que has planteado usa innerHTML, cuando innerHTML no se explica hasta la entrega CU01138E, por lo tanto la solución planteada parece que no se ajusta a la programación del curso

Salu2
« Última modificación: 29 de Enero 2018, 17:47 por Ogramar »

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
Hola Ogramar.

Gracias por corregirme el error al poner el numero de ejercicio.

En este ejercicio.
Citar
EJERCICIO

1) Genera un script que pida cinco números al usuario usando un bucle for normal (usa prompt para pedir los datos y conviértelos a valor numérico posteriormente). Almacena los números introducidos por el usuario en un array. A continuación usando un for in que recorra el array, muestra un mensaje informando del resultado de multiplicar cada uno de los números por 3. Ejemplo:

Se pedirán al usuario cinco números, supongamos que introduce 1, 3, 9, 10 y 7

A continuación se mostrará el mensaje:

Multiplicamos por 3 los números introducidos: 1*3 = 3, 3*3 = 9, 9*3 = 27, 10*3 = 30 y 7*3 =21.

No veo que ponga por ningún lado la forma de presentar los datos por pantalla, ni he leido en ningún otro tema que no se puedan utilizar funciones o código que pertenezca a algo más avanzado.

Lo hice así por practicar y si ves algunos ejercicios más de los que tengo en el hilo, estoy con el innerHTML desde muy atrás del curso.

Mas concretamente desde el tema tipos de nodos del DOM al intentar sacar todos los nodos por pantalla no los podía ver y por eso comencé a utilizar el innerHTML.

Si lo empece a utilizar es porque en los navegadores que utilizo yo (chromium, opera y firefox ) la función alert() se queda muy corta a la hora de presentar los datos por pantalla y cuando es muy largo el scroll se corta y aparece al final una línea de puntos ....... como que aún quedan datos por sacar (y aun quedan ).

No sé en qué tema del curso se ataca a innerHTML,  yo me tuve que buscar la vida en la red ( Como aconsejan en otros cursos en esta misma web ) para encontrar algo parecido a un print en consola y poder ver todos los datos en pantalla.

P.D: Aunque no se si te refieres al título del ejercicio en el que puse innerHTML, lo puse por error .
Por lo demás el ejercicio me parece que cumple la función que se pide, se presenten los datos en pantalla como se presenten ya que no se trata de evaluar el innerHTML.



Gracias ;)
« Última modificación: 03 de Febrero 2018, 19:56 por paramonso »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas, la alusión a si el ejercicio no es correcto en el marco de la programación del curso, se refiere a que la metodología del curso se basa en la resolución de los ejercicios siempre basándose en los contenidos explicados en cada entrega en particular, y en entregas anteriores en general. Por ejemplo a mucha gente le gusta usar jQuery, pero usarlo dentro del curso no sería correcto en el marco metodológico que proponemos, porque jQuery no es un contenido que se explique en el curso. Lo mismo ocurre con usar contenidos de entregas más adelantadas en entregas previas, no lo recomendamos desde el punto de vista de la didáctica y no lo consideramos una buena solución desde el punto de vista de la didáctica. Luego cada cual es libre de seguir las recomendaciones didácticas o no, ahí están los contenidos y cada uno los aprovecha como mejor considera. Por ello no recomendamos usar innerHTML en entregas previas a la entrega donde se explica innerHTML, que concretamente es la entrega "innerHTML JavaScript. Modificar texto o html (p.ej. div) en tiempo real. this: acceder al nodo actual (CU01138E)". Todos los ejercicios anteriores a esta entrega, desde el punto de vista de la didáctica, deberían resolverse sin usar innerHTML.

Salu2

 

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".