Autor Tema: Javascript bucle for para mostrar todos los párrafos de una web CU01131E  (Leído 3274 veces)

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
Hola. Solución al Ejercicio CU01131E Javascript (bucles) Saber tamaño de array con length. Break (detener bucle) del curso de programación JavaScript en pdf.

Las funciones a la solución de los ejercicios estan despues de los asteriscos. Los dos apartados del ejercicio están en el mismo código.

/*****************************************************************/
/************************      Ejercicio n     ***************************/
/*****************************************************************/
Código: [Seleccionar]

<!DOCTYPE html>
<html>
<head>
<title>Ejemplo DOM - aprenderaprogramar.com</title>
<meta charset="utf-8">
<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:5px;
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;}

h3:hover{background-color:BurlyWood;
box-shadow:5px 5px 10px 5px grey;
color:black;}

#botones{margin-left:350px;
width:500px;
float:left;
clear:both;  }
</style>
<script type="text/javascript">

/*1) Crea una función que pida una palabra al usuario y usando un bucle for y
el método charAt, muestre cada una de las letras que componen la entrada.*/

/*****************************************************************/
/************************  Ejercicio 1 ***************************/
/*****************************************************************/

function ejemploFor() {
var palabra, subpalabra = new Array();
palabra=prompt('Entre una palabra:','');
var bFor= palabra.length
    var subpalabra = new Array();
subpalabra[0]='';
var msg = 'Letras Introducidas por el teclado: \n\n';
for (var i=1; i<=bFor; i++)
{
subpalabra[i] = subpalabra[i-1] + palabra.charAt(i-1);
msg=msg+'Letra : '+palabra.charAt(i-1)+'\n';

}
alert (msg);
}

/*****************************************************************/
/************************** Ejercicio 2***************************/
/*****************************************************************/

/*2) Crea una función denominada mostrarContParrafos, que utilizando el
acceso a los nodos del DOM de tipo párrafo, muestre el texto que contienen.*/

function mostrarContParrafos(elemento)
{
var eleObte = document.getElementsByTagName(elemento);
var finFor= eleObte.length,i;
  var msg,n ;
  msg="Numero de Parrafos y Contenido \n\n";
 
for (i=1;i<=finFor;i++)
{
n=i-1;
msg=msg+'Parrafo: '+n+', Contiene : '+ eleObte[i-1].firstChild.nodeValue +'\n'
}
   alert(msg);
}
/*****************************************************************/
/*****************************************************************/
</script>
</head>
<body>
<h1>Portal web aprenderaprogramar.com</h1>
<h2>Didáctica y divulgación de la programación</h2>
<div style="width:1300px; float:left; margin-bottom:30px;">

<p>Manzana</p><p>Pera</p><p>Fresa</p><p>Ciruela</p><p>Naranja</p>
<p>Kiwi</p><p>Pomelo</p><p>Melón</p>
<p>Sandía</p><p>Mango</p><p>Papaya</p><p>Cereza</p>
<p>Nectarina</p><p>Frambuesa</p>
 
</div >
<div id="botones" >
<h3 class="boton" onclick="ejemploFor()">Pulse aquí para introducir una palabra</h3>
<h3 class="boton2" onclick="mostrarContParrafos('p')">Pulse aquí para seleccionar parrafos</h3>
</div>
</body>
</html>
:D
« Última modificación: 01 de Enero 2018, 20:59 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:Ejercicio CU01131E Javascript (bucles)
« Respuesta #1 en: 01 de Enero 2018, 20:58 »
Buenas paramonso, como ya hemos comentado en otros hilos por favor para poner título a los temas en los foros sigue las indicaciones que se dan en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

El ejercicio hace lo que pedía el enunciado, por ese lado todo bien.

Observaciones:

En la función ejemploFor parece que hay tres líneas que no sirven para nada (al menos yo no he logrado verle la utilidad, y si las elimino el código funciona igual). Estas líneas son las relacionadas con subpalabra:

Código: [Seleccionar]
var subpalabra = new Array();
subpalabra[0]='';
subpalabra[i] = subpalabra[i-1] + palabra.charAt(i-1);
   
El código funciona, pero si realmente estos fragmentos no tienen utilidad, podríamos decir que el código no está bien depurado, porque no es correcto que quede código sin utilidad.

Hay un detalle que puede resultar un tanto extraño a quien lo revise. En la función function mostrarContParrafos(elemento) hay algo que no es del todo coherente. Por un lado el nombre de la función es mostrarContParrafos y por otro lado la función recibe un parámetro, lo cual haría que no solo fuera invocable con párrafos sino también con cualquier otro elemento del DOM (p.ej. div, span, h1, label, etc.). Esto supone que el código es un tanto incoherente. Si el nombre de la función es mostrarContParrafos, ya no resulta lógico pasarle un parámetro, ya que únicamente se supone que va a trabajar con párrafos y no con otros elementos. Puede verse un ejemplo en https://www.aprenderaprogramar.com/foros/index.php?topic=3289.0

Salu2
« Última modificación: 01 de Enero 2018, 21:00 por Ogramar »

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
Re:Ejercicio CU01131E Javascript (bucles)
« Respuesta #2 en: 02 de Enero 2018, 15:45 »
Hola Ogramar. Lo primero gracias por corregirme los ejercicios.

Tienes razón en la corrección que me haces ya que yo le paso el parametro 'p' en la llamada a la función desde html  onclick=mostrarContParrafos('p') y tenia que haber creado una variable dentro de la función para que solamente se pudieran contar párrafos y como bien dices si se llamara a la función desde cualquier otra función dandole a la variable elemento cualquier otro valor del DOM ( o no del DOM lo cogeria ) y la función ya no seria especifica para este caso de tratar los parrafos.

Gracias por la corrección. Un saludo  ;)
« Última modificación: 09 de Junio 2018, 19:45 por Ogramar »

 

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