JAVASCRIPT: ACCEDER A ELEMENTOS POR ID. GETELEMENTBYID. DOCUMENT.ALL. CAMBIAR IMAGEN IMG SRC (CU01127E)

Documentos relacionados
QUERYSELECTORALL JAVASCRIPT Y QUERYSELECTOR. ACCEDER A ELEMENTOS POR SELECTORES CSS. EJEMPLOS (CU01134E)

FOR JAVASCRIPT (BUCLES) CONOCER TAMAÑO DE UN ARRAY CON LENGTH. BREAK PARA DETENER EJECUCIÓN. EJEMPLOS Y EJERCICIOS (CU01131E)

JAVASCRIPT CREATEELEMENT, CREATETEXTNODE, APPENDCHILD. MODIFICAR PROPIEDAD ONCLICK CON JAVASCRIPT (CU01140E)

NODELIST JAVASCRIPT. DIFERENCIAR NODELIST Y ARRAY. ACCEDER AL TEXTO DE NODOS CON TEXTCONTENT, INNERTEXT (CU01136E)

FUNCIÓN EVAL JAVASCRIPT. GETELEMENTSBY CLASSNAME. EJEMPLO CÓDIGO CALCULADORA SIMPLE (CU01133E)

DISEÑO WEB CSS CON DOS, TRES O MÁS COLUMNAS CON FLOAT. WIDTH EN PORCENTAJES NO FUNCIONA? TIPOS DE ANCHO. EJEMPLOS. (CU01036D)

WHILE JAVASCRIPT. DO WHILE. CONTINUE PARA SALTAR BUCLE. BUCLES CON LABEL (ETIQUETA O NOMBRE). EJEMPLOS (CU01132E)

COLUMNAS CSS: COLUMN-COUNT, COLUMN-WIDTH, COLUMNS, COLUM-GAP Y COLUM-RULE. EJEMPLOS PRÁCTICOS (CU01057D)

ACCEDER A NODOS HIJOS JAVASCRIPT Y SUS ATRIBUTOS. NODENAME, NODETYPE Y NODEVALUE O TEXTO DEL NODO. EJEMPLOS (CU01126E)

IMAGE JAVASCRIPT. NEW IMAGE. COMPLETE, NATURALWIDTH. OBTENER TODAS LAS IMÁGENES DE UNA WEB CON DOCUMENT.IMAGES (CU01186E)

PROPIEDADES VISIBILITY (VISIBLE, HIDDEN, COLLAPSE) Y OVERFLOW CSS. SCROLL. OVERFLOW- X Y OVERFLOW-Y. EJEMPLOS (CU01038D)

FUNCIONES JAVASCRIPT PARA CADENAS DE TEXTO: TOUPPERCASE, TOLOWERCASE, CHARAT, SUBSTRING, SLICE, INDEXOF, SPLIT, REPLACE, REPLACEALL.

EJEMPLOS JAVASCRIPT OPERADORES INCREMENTO Y DECREMENTO. ASIGNACIÓN Y ASIGNACIÓN COMPUESTA. (CU01118E)

FORMULARIOS JAVASCRIPT: EJEMPLOS DE DOCUMENT.FORMS Y ELEMENTS. ACCESO DIRECTO A FORMULARIOS Y CAMPOS CON ID Y NAME (CU01175E)

EFECTOS JAVASCRIPT VISUALES, DE IMÁGENES, TEXTO... RECURSIÓN. SETTIMEOUT NO FUNCIONA EN BUCLES FOR, WHILE,? (CU01166E)

Z-INDEX CSS NO FUNCIONA? CONTROL DE SUPERPOSICIÓN DE ELEMENTOS COMO CAPAS, DIV O IMÁGENES (CU01039D)

CREAR OBJETOS JAVASCRIPT CON THIS Y NEW. EJEMPLOS PARA ENTENDER QUÉ SON LOS OBJETOS Y PARA QUÉ SIRVEN. (CU01143E)

JAVASCRIPT VALIDAR CAMPO TEXTO NO VACÍO. QUE VALOR SEA NUMÉRICO. O CORREO ELECTRÓNICO EN FORMULARIOS. EJEMPLOS (CU01182E)

SETATTRIBUTE Y GETATTRIBUTE JAVASCRIPT. DIFERENCIAS DE SINTAXIS PROPIEDADES CON HTML. EJEMPLO MAXLENGTH. (CU01176E)

ESTILOS Y HERENCIA EN TABLAS CSS. WIDTH, HEIGHT, FONT-SIZE Y OVERFLOW EN TABLAS. PROPIEDAD BORDER- COLLAPSE (CU01051D)

EFECTO CSS DE ESQUINAS REDONDEADAS: BORDER- RADIUS. BORDER-LEFT- TOP-RADIUS. EJEMPLOS CIRCULO O ELIPSE (CU01058D)

HTMLELEMENT JAVASCRIPT. MÉTODOS FOCUS, BLUR. SUBMIT FORMULARIOS: DETENER ENVÍO. ONSUBMIT RETURN. EJEMPLOS. (CU01181E)

SWITCH JAVASCRIPT. SELECCIÓN ENTRE ALTERNATIVAS. DIAGRAMA DE FLUJO Y EJEMPLO DE APLICACIÓN. (CU01120E)

CSS VERTICAL-ALIGN MIDDLE NO FUNCIONA? CENTRAR VERTICALMENTE UNA IMAGEN, TEXTO, DIV, ETC. EJEMPLOS (CU01043D)

DEGRADADOS CSS. EFECTO LINEAL Y RADIAL. LINEAR-GRADIENT. ANGULOS CSS: UNIDADES ANGULARES DEG, GRAD, TURN, RAD. (CU01060D)

MENÚ DESPLEGABLE CSS HORIZONTAL. EFECTO DROPDOWN CON ITEMS Y SUBITEMS. USO DE FLOAT, DISPLAY, POSITION EJEMPLO DE CÓDIGO.

QUÉ ES CSS? HTML, CONOCIMIENTO PREVIO PARA PODER APRENDER CSS DESDE CERO (CU01003D)

ARCHIVOS DE EXTENSIÓN JS. INCLUIR JAVASCRIPT EN WEBS REFERENCIANDO UN ARCHIVO EXTERNO CON SRC (CU01110E)

DIFERENCIAS ENTRE NAVEGADORES EN RESPUESTAS A JAVASCRIPT (FIREFOX, EXPLORER, CHROME, SAFARI ). JAVASCRIPT EN LÍNEA. (CU01108E)

ANIMACIONES CSS. TRANSITION-PROPERTY, TRANSITION-DURATION, TRANSITION-TIMING- FUNCTION Y TRANSITION- DELAY. EJEMPLOS. (CU01063D)

ANIMATION CSS. NAME, DURATION, DELAY, FILL- MODE, ITERATION- COUNT, DIRECTION, TIMING-FUNCTION, PLAY- STATE. EJEMPLOS (CU01065D)

OBJETO WINDOW JAVASCRIPT. PROPIEDADES: NAME, INNERWIDTH, LENGTH,, OPENER, OUTERHEIGHT, PAGEXOFFSET, SCREENX (CU01173E)

IF ELSE, IF ELSE IF JAVASCRIPT. CONDICIONALES DEL FLUJO O ESTRUCTURAS DE DECISIÓN. EJEMPLOS. EJERCICIOS. (CU01119E)

DOM O DOCUMENT OBJECT MODEL JAVASCRIPT. QUÉ ES? PARA QUÉ SIRVE? EL W3C. ARBOL DE NODOS. PARENT Y CHILD. EJEMPLOS (CU01123E)

TIPOS DE DATOS EN JAVASCRIPT. TIPOS PRIMITIVOS Y OBJETO. SIGNIFICADO DE UNDEFINED, NULL, NAN (CU01112E)

LÍNEAS SEPARADORAS. ETIQUETA <HR>. COMENTARIOS EN HTML. ATRIBUTOS SIZE, WIDTH, NOSHADE (DEPRECATED). EJEMPLOS (CU00716B)

Primer Seminario. Paradigmas de Programación. Curso Departamento de Informática Universidad de Valladolid

CSS EFECTO SOMBRA CON TEXT-SHADOW Y BLUR, TEXT-OVERFLOW CLIP, ELLIPSIS Y LINE-HEIGHT (INTERLINEADO) (CU01041D)

DISABLED JAVASCRIPT EN INPUT TEXT, SUBMIT, BUTTON, SELECT, LINK, STYLE... IMPEDIR ENVÍO DUPLICADO FORM. DESACTIVAR CSS (CU01183E)

DEFINICIÓN DE FONDO CSS. BACKGROUND- IMAGE Y EFECTO FONDO PÁGINA CON PAPEL TAPIZ. BACKGROUND-REPEAT. EJEMPLOS (CU01030D)

TEXT-ALIGN, COLOR, TEXT- DECORATION, TEXT- INDENT, WHITE-SPACE NOWRAP, PRE, PRE- WRAP, PRE-LINE O NORMAL (CU01040D)

CONCEPTOS DE MARGEN Y RELLENO CSS. DIFERENCIAS ENTRE MARGIN Y PADDING CSS CON EL BOX MODEL. EJEMPLOS (CU01028D)

CLOSURES JAVASCRIPT. EJEMPLOS. CONCEPTO: QUÉ SON Y PARA QUÉ SIRVEN. RETARDO DE EJECUCIÓN CON SETTIMEOUT Y CLOSURES. (CU01169E)

Hojas de estilo en cascada

CONCEPTO FLOAT CSS. NONE, LEFT, RIGHT Y CENTRAR?. COLOCAR TEXTO ALREDEDOR DE UNA IMAGEN. EJEMPLOS DE POSICIONAMIENTO FLOTANTE (CU01034D)

CONSTRUCTORES JAVASCRIPT. CREAR OBJETOS VACÍOS. AÑADIR PROPIEDADES Y MÉTODOS. OBJETOS ÚNICOS O SINGLETON. EJEMPLOS (CU01145E)

DISEÑOS DE TABLAS CSS. BORDER-SPACING, CAPTION-SIDE, EMPTY- CELLS. COLORES DE FILAS INTERCALADOS ALTERNOS (CU01052D)

VARIABLES STRING JAVASCRIPT. DEBEN USARSE COMILLAS SIMPLES O DOBLES? CARACTERES DE ESCAPE \N \T.LENGTH (CU01114E)

QUÉ SIGNIFICA JAVASCRIPT VOID (0) Y JAVASCRIPT: EN HREF? QUÉ DIFERENCIA RETURN FALSE Y PREVENTDEFAULT? (CU01184E)

PROPIEDAD DISPLAY CSS. INLINE, BLOCK, NONE, LIST-ITEM, INLINE-BLOCK. EJERCICIOS DE EJEMPLO RESUELTOS EN CÓDIGO CSS (CU01033D)

ADDEVENTLISTENER JAVASCRIPT. REMOVE. ATTACHEVENT. THIS EN EVENTOS. PROPAGACIÓN. BUBBLING. CAPTURA. (CU01158E)

JAVASCRIPT HOISTING. ERRORES FRECUENTES DE PROGRAMADORES Y CONSEJOS. PROBLEMAS PRECISIÓN DECIMAL (CU01190E)

STATIC JAVASCRIPT. PROPIEDADES Y MÉTODOS ESTÁTICOS O DE CLASE. EJERCICIO. CÓDIGO EJEMPLOS BÁSICOS (CU01148E)

<DOCTYPE HTML PUBLIC> <HTML> <HEAD>... </HEAD> <FRAMESET>... </FRAMESET> </HTML>

DOM : MODELO DE OBJETOS DEL DOCUMENTO. Árbol de nodos

MENÚS HORIZONTALES CSS Y MENÚS VERTICALES. CREAR MENÚS CON EFECTOS A PARTIR DE LISTAS CSS. CÓDIGO DE EJEMPLOS. (CU01049D)

SELECTOR DE CLASES CSS: CLASS. APLICAR ESTILOS CSS EN DISTINTOS LUGARES DE UNA WEB. EJEMPLOS. (CU01012D)

PROPIEDADES CSS WIDTH Y HEIGHT. VALOR POR DEFECTO AUTO (AUTOMÁTICO) EJEMPLOS PRÁCTICOS Y EJERCICIOS RESUELTOS (CU01025D)

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Cap. IV - Selectores, identificadores, clases y otros by Tux Merlin - Joomla-gnu.com

Problemas típicos con HTML

SEGUNDA PARTE: DOM y jquery

Desarrollo de Aplicaciones Web con PHP. Javier Enciso

SELECTORES CSS: ID. APLICAR CSS A PARTES DE UNA PÁGINA WEB. EJEMPLOS. DIFERENCIAR POR ETIQUETAS HTML EN IDS. (CU01011D)

Diseño web. Fundamentos de CSS. Informática 4º ESO

Conceptos Teóricos de HTML5 (material extra adicional libro):

PADDING Y MARGIN CSS. TOP, RIGHT, BOTTOM Y LEFT. MARGIN NEGATIVO Y CENTRAR CON MARGIN AUTO. EJEMPLOS (CU01029D)

Capas. Para definir una sección o división se utilizan las capas. Para esto utilizamos las etiquetas de HTML

INSERTAR UN MENÚ DESPLEGABLE

Tema 3, parte 5. Estilos dinámicos. Texto. Cambio de estilos. Animaciones.

API CANVAS HTML Y JAVASCRIPT. EJEMPLOS. DIBUJAR CÍRCULOS, FORMAS, GRÁFICOS, ANIMACIONES, JUEGOS, ETC. (CU01195E)

EFECTO ANIMACIÓN CSS. DIFERENCIA ENTRE TRANSICIÓN Y O FOTOGRAMAS O ESTADOS CLAVE. (CU01064D)

PROTOTYPE JAVASCRIPT. EJEMPLOS DE PROTOTIPOS Y HERENCIA. CÓMO USARLOS. SINTAXIS. EFICIENCIA. (CU01147E)

Índice general. Pág. N. 1. Capítulo 1. Capítulo 2

Breve Introducción a jquery

JavaScript: Objetos del documento

ENCABEZADOS HTML <h1> A <h6>, PÁRRAFOS <p>, APLICAR ESTILOS Y ETIQUETA <pre> DE TEXTO PREFORMATEADO. EJEMPLOS (CU00715B)

Catedra de Base de Datos

CONCEPTO DE HERENCIA EN HOJAS DE ESTILO EN CASCADA CSS. QUÉ ES? FORZAR HERENCIA CON INHERIT. EJEMPLOS. (CU01013D)

FUNCIONES ARRAYS JAVASCRIPT. PUSH, SORT (ORDENAR NÚMEROS), CONCAT, JOIN, POP, SHIFT, SLICE, SPLICE. (CU01153E)

PARÉNTESIS EN EXPRESIONES REGULARES JAVASCRIPT. FLAGS. MÉTODOS EXEC, TEST, MATCH, SEARCH, REPLACE, SPLIT. EJEMPLOS (CU01155E)

Cómo se define? selector {propiedad1: valor1; propiedad2: valor2}

Tutorial de enlace entre Formulario Web y Servicio Web REST. Programación en Internet

CAPTURAR EVENTOS DE TECLADO JAVASCRIPT. TECLA PULSADA. FROMCHARCODE. KEYCODE, WICH. (CU01161E)

DE LA ESTRUCTURA HTML Y SU SEMÁNTICA AL MODELO DE CAJAS CSS. ELEMENTOS BLOCK Y ELEMENTOS INLINE (CU01008D)

Producción Digital I. Lic. Wenceslao Zavala 7 de Junio 2018

EFECTO SOMBRA CSS CON BOX-SHADOW. SOMBRA INTERIOR INSET. BLUR O DIFUMINADO, SPREAD. EJEMPLOS Y EJERCICIOS RESUELTOS (CU01059D)

CODIGOS AMAWEBS HTML & CSS. </style>

TIC II Tema 2: Programación Web

Acceso al DOM. Cualquier cosa que pueda guardarse en una variable: desde simples datos hasta elementos complejos (arrays, funciones, fechas, etc.

OPERADOR CONDICIONAL TERNARIO TIPO IF CON INTERROGACIÓN (JAVASCRIPT, JAVA, ETC.) Y DOS PUNTOS. EJEMPLOS (CU01152E)

THIS JAVASCRIPT: SIGNIFICADOS. AMBITOS (SCOPE). ANIDAMIENTO. NAMESPACES. EJEMPLO EJERCICIO RESUELTO. (CU01168E)

UCEMA Ingeniería Informática Introducción a HTML y Javascript

CONCEPTO DE CASCADA Y HERENCIA CSS. QUÉ ES? ESTILOS DE USUARIO. IMPORTANCIA!IMPORTANT. EJEMPLOS. (CU01017D)

API DRAG AND DROP HTML Y JAVASCRIPT. EVENTOS. EFECTOS. DATATRANSFER. EJEMPLOS. ARRASTRAR Y SOLTAR. (CU01196E)

PROPÓSITOS. Tecnicatura en Informática Profesional y Personal [ 1 ]

ERROR, THROW Y TRY CATCH JAVASCRIPT. MESSAGE, FILENAME, LINENUMBER. EVAL Y RANGEERROR, REFERENCE ERROR. EJEMPLOS (CU01187E)

SHORTAND: NOTACIÓN CSS ABREVIADA. BORDER- WIDTH Y THIN, MEDIUM, THICK, BORDER-COLOR Y TRANSPARENT. BORDER. EJEMPLOS. (CU01027D)

FUNDAMENTOS DE ROBÓTICA. Maestro: Ing. Marco Antonio López Paredes REPORTE DE PROGRAMA: ANALIZAR LOS OBSTACULOS DE ROBOTS EN UN TABLERO

Transcripción:

APRENDERAPROGRAMAR.COM JAVASCRIPT: ACCEDER A ELEMENTOS POR ID. GETELEMENTBYID. DOCUMENT.ALL. CAMBIAR IMAGEN IMG SRC (CU01127E) Sección: Cursos Categoría: Tutorial básico del programador web: JavaScript desde cero Fecha revisión: 2029 Resumen: Entrega nº27 del Tutorial básico JavaScript desde cero. Autor: César Krall

ACCEDER A ELEMENTOS JAVASCRIPT Podemos acceder a los nodos del DOM (Document Object Model) usando JavaScript y los índices de array y relaciones padre hijo hermanos (parent, chidnodes, siblings), pero en general nos será más útil poder acceder directamente a aquel nodoo que nos resulte de interés. JavaScript proporciona varias funciones para el acceso directo a nodos. ACCESO DIRECTO A NODOS Las formas de acceder directamente a nodos con JavaScript podemos resumirlas así: Acceso directo a nodos Elegido por su atributo id Sintaxis document.getelementbyid('valorid'); Ejemplo document.getelementbyid (menu1); Elegido por su atributo name document.getelementsbyname('valorname' ); document.getelementsby Name('peticionDatos'); Elegido por el tipo de etiqueta HTML (tag) Elegido por class CSSS Elegido por selector CSS Elegido por selector CSS document.getelementsbytagname('valortag'); document.getelementsbyclassname('valorclase'); document.queryselectorall('selectorcss'); document.queryselector('selectorcss'); document.getelementsbytag Name(span); document.getelementsbyclass Name('destacado'); document.queryselectorall ('#menu1 p'); document.queryselector ('#menu1 p'); Hace unos años se usaba document.all para realizar selección de nodos en un documento, por ejemplo document.all.tags( div ) devolvía todos los elementos div en un documento, pero esta sintaxis se considera obsoleta por lo que no vamos a usarla. Una vez que tenemos acceso directo a los nodos podemos empezar a hacer cosas interesantes como modificar dinámicamente los nodos, como veremos en el ejemplo de código que mostramos más abajo.

GET ELEMENT BY ID Un atributo que pueden tener las etiquetas HTML es el valor de id, que permite entre otras cosas establecer estilos CSS para dicho elemento y sus descendientes. Por ejemplo <div id="contenedor"> establece que el id para este elemento div es contenedor. El atributo id nos va a permitir acceder a un nodo del DOM con dicho valor de atributo. Recordar que en un documento HTML no debería existir más de un elemento con un mismo id. Es decir, los ids deben ser únicos (identificadores únicos de un elemento). En caso de tener dos elementos dentro de nuestro documento HTML que tengan el mismo id, pueden surgir errores (seguramente JavaScript devuelva el primer elemento con el id especificado que encuentre, pero no deberíamos trabajar teniendo ids repetidos porque esto es incorrecto). El nombre de la función document.getelementbyid('valorid') nos informa sobre su cometido: nos devuelve un solo nodo de tipo elemento del DOM cuyo id coincide con el pasado como argumento. Una vez tenemos el nodo con el id deseado, podemos modificar dinámicamente sus propiedades. En el siguiente código vemos un ejemplo donde el objetivo es mostrar una imagen con dos botones en su parte inferior: <<<Atrás para ir hacia atrás y mostrar una imagen anterior o Adelante>>> para ir hacia delante y mostrar una imagen posterior. Si ya estamos en la primera imagen o en la última, aparecerá un mensaje indicando que no es posible realizar ese movimiento. Escribe el código, ejecútalo y razona sobre él. Ten en cuenta que podría surgir algún problema de compatibilidad con tu navegador. Si es así, localiza dónde se encuentra ese problema y corrígelo (si tienes problemas para hacerlo escribe una consulta en los foros aprenderaprogramar.com).

<html><head><title>curso JavaScript aprenderaprogramar.com</title> <meta charset="utf-8"> <style type="text/css"> body {text-align: center; font-family: sans-serif; div {margin:20px; #contenedor {width:405px;margin:auto; #adelante, #atras {padding:15px; width: 130px; float: left; color: white; border-radius: 40px; background: rgb(202, 60, 60); #adelante:hover, #atras:hover {background: rgb(66, 184, 221); </style> <script type="text/javascript"> var numeroimagenactual =9; function moverimagen(movimiento) { if (numeroimagenactual == 6 && movimiento == 'atras' numeroimagenactual == 11 && movimiento == 'adelante') { alert ('No es posible hacer ese movimiento'); if (numeroimagenactual == 11 && movimiento == 'atras' numeroimagenactual == 6 && movimiento =='adelante') { valornuevonumeroimagen = 9; 'http://aprenderaprogramar.com/images/thumbs_portada/thumbs_camisetas/camiseta_9_humor_informatico_foto.jpg'; document.getelementbyid('imgcarrusel').alt = 'Camiseta 9 aprenderaprogramar.com'; document.getelementbyid('imgcarrusel').title = 'Diálogo entre informáticos'; if (numeroimagenactual == 9 && movimiento == 'atras') { valornuevonumeroimagen = 6; 'http://aprenderaprogramar.com/images/thumbs_portada/thumbs_camisetas/camiseta_6_humor_informatico_foto.jpg'; document.getelementbyid('imgcarrusel').alt = 'Camiseta 6 aprenderaprogramar.com'; document.getelementbyid('imgcarrusel').title = 'Desbordado por los números'; document.getelementbyid('numeracion').nodevalue = '99'; if (numeroimagenactual == 9 && movimiento == 'adelante') { valornuevonumeroimagen = 11; 'http://aprenderaprogramar.com/images/thumbs_portada/thumbs_camisetas/camiseta_11_humor_informatico_foto.jpg'; document.getelementbyid('imgcarrusel').alt = 'Camiseta 11 aprenderaprogramar.com'; document.getelementbyid('imgcarrusel').title = 'Estudiando programacion'; numeroimagenactual = valornuevonumeroimagen; document.getelementbyid('numeracion').firstchild.nodevalue = 'Camiseta ' + numeroimagenactual; </script> </head> <body> <div > <p>pulsa adelante o atrás</p> <h1 id="numeracion">camiseta 9</h1> <img id="imgcarrusel" src="http://aprenderaprogramar.com/images/thumbs_portada/thumbs_camisetas/camiseta_9_humor_informatico_foto.jpg" alt="camiseta 9 aprenderaprogramar.com" title="diálogo entre informáticos"> <div id="contenedor"> <div id ="atras" onclick="moverimagen('atras')"> <<< Atrás </div> <div id="adelante" onclick="moverimagen('adelante')" >Adelante >>></div> </div> </div></body></html>

EJERCICIO 1.Comprueba que el código anterior te permite cambiar la imagen que se muestra haciendo uso de los botones. 2. En el código anterior hay una declaración de variables (var numeroimagenactual =9;) que no está dentro de una función. Por qué crees que se ha hecho esto así? Prueba a colocarla dentro de la función, comprueba qué ocurre y razona el por qué. 3. Modifica el código anterior para que en lugar de definirse src, alt y title para cada imagen dentro de los if, se definan estos valores usando arrays declarados en cabecera de la función. Por ejemplo tendremos que: valorsrc[0] = 'http://aprenderaprogramar.com/images/thumbs_portada/thumbs_camisetas/ camiseta_6_humor_informatico_foto.jpg'; Las asignaciones dentro de los if deberán hacer referencia a los elementos del array y el resultado de ejecución deberá ser el mismo que se obtenía con el código original. 4. Duplica todo el código HTML existente dentro de la etiqueta body, de modo que se muestren dos veces el texto, dos veces la imagen y dos veces los botones. Cuándo pulsas un botón situado debajo a la imagen inferior qué ocurre? Por qué ocurre esto? Para comprobar si tus respuestas son correctas puedes consultar en los foros aprenderaprogramar.com. Próxima entrega: CU01128E Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=78&itemid=206