2. OBJETOS ELEMENT: PROPIEDADES
Además de los estilos de un elemento,
también puede modificar su contenido.
Algunas de las propiedades y métodos
provistos por los objetos Element para este
propósito son:
innerHTML.
outerHTML.
insertAdjacentHTML(ubicación,
contenido
3. OBJETOS ELEMENT: PROPIEDADES
Además de los estilos de un elemento,
también puede modificar su contenido.
Algunas de las propiedades y métodos
provistos por los objetos Element para este
propósito son:
innerHTML: Esta propiedad declara o
devuelve el contenido de un elemento.
outerHTML.
insertAdjacentHTML(ubicación,
contenido
4. OBJETOS ELEMENT: PROPIEDADES
Además de los estilos de un elemento,
también puede modificar su contenido.
Algunas de las propiedades y métodos
provistos por los objetos Element para este
propósito son:
innerHTML.
outerHTML: Esta propiedad declara o
devuelve un elemento y su contenido. A
diferencia de la propiedad innerHTML,
esta propiedad no solo reemplaza el
contenido, sino también el elemento.
5. OBJETOS ELEMENT: PROPIEDADES
Además de los estilos de un elemento,
también puede modificar su contenido.
Algunas de las propiedades y métodos
provistos por los objetos Element para este
propósito son:
innerHTML.
outerHTML.
insertAdjacentHTML(ubicación,
contenido): Inserta contenido en una
ubicación determinada por el atributo
ubicación.
6. OBJETOS ELEMENT: PROPIEDADES
Además de los estilos de un elemento,
también puede modificar su contenido.
Algunas de las propiedades y métodos
provistos por los objetos Element para este
propósito son:
insertAdjacentHTML(ubicación,
contenido): Los valores disponibles son:
beforebegin.
afterbegin.
beforeend.
afterend.
7. OBJETOS ELEMENT: PROPIEDADES
Además de los estilos de un elemento,
también puede modificar su contenido.
Algunas de las propiedades y métodos
provistos por los objetos Element para este
propósito son:
insertAdjacentHTML(ubicación,
contenido): Los valores disponibles son:
beforebegin: Antes del elemento.
afterbegin.
beforeend.
afterend.
8. OBJETOS ELEMENT: PROPIEDADES
Además de los estilos de un elemento,
también puede modificar su contenido.
Algunas de las propiedades y métodos
provistos por los objetos Element para este
propósito son:
insertAdjacentHTML(ubicación,
contenido): Los valores disponibles son:
beforebegin.
afterbegin: Dentro del elemento, antes
del primer elemento hijo.
beforeend.
9. OBJETOS ELEMENT: PROPIEDADES
Además de los estilos de un elemento,
también puede modificar su contenido.
Algunas de las propiedades y métodos
provistos por los objetos Element para este
propósito son:
insertAdjacentHTML(ubicación,
contenido): Los valores disponibles son:
beforebegin.
afterbegin.
beforeend: Dentro del elemento,
después del último elemento hijo.
10. OBJETOS ELEMENT: PROPIEDADES
Además de los estilos de un elemento,
también puede modificar su contenido.
Algunas de las propiedades y métodos
provistos por los objetos Element para este
propósito son:
insertAdjacentHTML(ubicación,
contenido): Los valores disponibles son:
beforebegin.
afterbegin.
beforeend.
afterend: Después del elemento.
11. OBJETOS ELEMENT: PROPIEDADES
La manera más sencilla de reemplazar el
contenido de un elemento es con la propiedad
innerHTML. Asignando un nuevo valor a esta
propiedad, el contenido actual se reemplaza
con el nuevo.
El siguiente ejemplo reemplaza el contenido
del elemento <p> con el nuevo texto “¡El
mejor sitio web!" cuando pulsa clic en párrafo.
La propiedad innerHTML también sirve para
leer y procesar el contenido actual.
12. OBJETOS ELEMENT: PROPIEDADES
<!DOCTYPE html><html lang="es"><head>
<meta charset="utf-8"><title>JavaScript</title>
<script>
function cambiarcontenido() {
var elemento =
document.getElementById("subtitulo");
elemento.innerHTML =
"Este es mi sitio web";}
</script>
</head>
16. OBJETOS ELEMENT: PROPIEDADES
Además de texto, la propiedad innerHTML
también puede procesar código HTML.
Cuando el código HTML se asigna a esta
propiedad, se interpreta y el resultado se
muestra en pantalla.
17. OBJETOS ELEMENT: PROPIEDADES
<!DOCTYPE html><html lang="es"><head>
<meta charset="utf-8"><title>JavaScript</title>
<script>
function agregarelemento() {
var elemento =
document.querySelector("section");
elemento.innerHTML =
"<p>Este es un texto nuevo</p>";}
</script>
</head>
19. OBJETOS ELEMENT: PROPIEDADES
<body>
<section>
<h1>Sitio Web</h1>
<button type="button"
onclick="agregarelemento()">
¡Agrega contenido!
</button>
</section>
</body>
</html>
Se obtiene una referencia al primer elemento
<section> en el documento y reemplaza su
contenido con un elemento <p>. A partir de
ahí, el usuario solo verá el elemento <p> en
la pantalla.
20. OBJETOS ELEMENT: PROPIEDADES
Si no desea reemplazar todo el contenido de
un elemento, sino agregar más contenido,
puede usar el método insertAdjacentHTML().
Este método puede agregar contenido antes o
después del contenido actual y también fuera
del elemento, dependiendo del valor asignado
al primer atributo.
21. OBJETOS ELEMENT: PROPIEDADES
<!DOCTYPE html><html lang="es"><head>
<meta charset="utf-8"><title>JavaScript</title>
<script>
function agregarelemento() {
var elemento =
document.querySelector("section");
elemento.insertAdjacentHTML
("beforeend",
"<p>Este es un texto nuevo</p>");}
</script>
</head>
22. OBJETOS ELEMENT: PROPIEDADES
<!DOCTYPE html><html lang="es"><head>
<meta charset="utf-8"><title>JavaScript</title>
<script>
function agregarelemento() {
var elemento =
document.querySelector("section");
elemento.insertAdjacentHTML
("beforeend",
"<p>Este es un texto nuevo</p>");}
</script>
</head>
insertAdjacentHTML() agrega contenido al
documento, pero sin que afecte al contenido
existente. Al pulsar el botón, el código
JavaScript agrega un elemento <p> debajo
del elemento <button> (al final del contenido
del elemento <section>).
24. CREAR OBJETOS ELEMENT
Cuando se agrega código HTML al documento
a través de propiedades y métodos como
innerHTML o insertAdjacentHTML(), el
navegador analiza el documento y genera
los objetos Element necesarios para
representar los nuevos elementos.
Aunque es normal utilizar este procedimiento
para modificar la estructura de un documento,
el objeto Document incluye métodos para
trabajar directamente con los objetos
Element.
25. CREAR OBJETOS ELEMENT
createElement(nombre): Crea un nuevo
objeto Element del tipo especificado por el
atributo nombre.
appendChild(elemento): Inserta el elemento
representado por un objeto Element como
hijo de un elemento existente en el
documento.
removeChild(elemento): Elimina un
elemento hijo. El atributo debe ser una
referencia del hijo a eliminarse.
26. CREAR OBJETOS ELEMENT
Para crear un nuevo objeto Element para
agregar un elemento al documento, primero
debe crear el objeto con el método
createElement() y luego usar este objeto para
agregar el elemento al documento con el
método appendChild().
27. CREAR OBJETOS ELEMENT
<!DOCTYPE html><html lang="es"><head>
<meta charset="utf-8"><title>JavaScript</title>
<script>
function agregarelemento() {
var elemento =
document.querySelector("section");
var elementonuevo =
document.createElement("p");
elemento.appendChild(elementonuevo);}
</script>
</head>
28. CREAR OBJETOS ELEMENT
<!DOCTYPE html><html lang="es"><head>
<meta charset="utf-8"><title>JavaScript</title>
<script>
function agregarelemento() {
var elemento =
document.querySelector("section");
var elementonuevo =
document.createElement("p");
elemento.appendChild(elementonuevo);
}
</script>
</head>
Ésto agregará un elemento <p> al final del
elemento <section>, pero el elemento no tiene
ningún contenido, por lo que no produce
ningún cambio en la pantalla. Para definir el
su contenido, puede asignar un nuevo valor a
su propiedad innerHTML.
30. CREAR OBJETOS ELEMENT
Los objetos Element que devuelve el método
createElement() son los mismos que los
creados por el navegador para representar el
documento y, por lo tanto, puede modificar
sus propiedades para asignar nuevos estilos o
definir sus contenidos.
El siguiente código asigna contenido a un
objeto Element antes de agregar el elemento
al documento.
31. CREAR OBJETOS ELEMENT
<!DOCTYPE html><html lang="es"><head>
<meta charset="utf-8"><title>JavaScript</title>
<script>
function agregarelemento() {
var elemento =
document.querySelector("section");
var elementonuevo =
document.createElement("p");
elementonuevo.innerHTML =
"Este es un elemento nuevo";
elemento.appendChild(elementonuevo);}
</script></head>
32. CREAR OBJETOS ELEMENT
<!DOCTYPE html><html lang="es"><head>
<meta charset="utf-8"><title>JavaScript</title>
<script>
function agregarelemento() {
var elemento =
document.querySelector("section");
var elementonuevo =
document.createElement("p");
elementonuevo.innerHTML =
"Este es un elemento nuevo";
elemento.appendChild(elementonuevo);}
</script></head>
No hay mucha diferencia
entre agregar los elementos
con la propiedad innerHTML
o estos métodos.
33. CREAR OBJETOS ELEMENT
<!DOCTYPE html><html lang="es"><head>
<meta charset="utf-8"><title>JavaScript</title>
<script>
function agregarelemento() {
var elemento =
document.querySelector("section");
var elementonuevo =
document.createElement("p");
elementonuevo.innerHTML =
"Este es un elemento nuevo";
elemento.appendChild(elementonuevo);}
</script></head>
El método createElement()
resulta útil cuando trabajamos
con aquellas API que requieren
objetos Element para procesar
información.
35. EVENTOS.
HTML provee atributos para ejecutar
JavaScript cuando ocurre un evento. Ya ha
implementado onload para ejecutar una
función cuando el navegador termina de
cargar el documento junto a onclick que
ejecuta código JavaScript cuando el usuario
hace clic en un elemento. Todos los atributos
se pueden configurar desde JavaScript. Esto
se debe a que los atributos de los elementos
se convierten en propiedades de los objetos
Element y, por lo tanto, puede definir sus
valores desde JavaScript
36. EVENTOS.
<!DOCTYPE html><html lang="es"><head>
<meta charset="utf-8"><title>JavaScript</title>
<script>
function agregarevento() {
var elemento =
document.querySelector
("section > button");
elemento.onclick = mostrarmensaje;}
function mostrarmensaje() {
alert("Presionó el botón");}
window.onload = agregarevento;
</script></head>
37. EVENTOS.
<!DOCTYPE html><html lang="es"><head>
<meta charset="utf-8"><title>JavaScript</title>
<script>
function agregarevento() {
var elemento =
document.querySelector
("section > button");
elemento.onclick = mostrarmensaje;}
function mostrarmensaje() {
alert("Presionó el botón");}
window.onload = agregarevento;
</script></head>
En este caso, se definen dos
atributos: el atributo onload del
objeto Window y el atributo
onclick del elemento <button>.
En este caso, se definen dos
atributos: el atributo onload del
objeto Window y el atributo
onclick del elemento <button>.
38. EVENTOS.
<!DOCTYPE html><html lang="es"><head>
<meta charset="utf-8"><title>JavaScript</title>
<script>
function agregarevento() {
var elemento =
document.querySelector
("section > button");
elemento.onclick = mostrarmensaje;}
function mostrarmensaje() {
alert("Presionó el botón");}
window.onload = agregarevento;
</script></head>
Cuando se carga el
documento, el evento load se
desencadena y se ejectua la
función agregarevento().
39. EVENTOS.
<!DOCTYPE html><html lang="es"><head>
<meta charset="utf-8"><title>JavaScript</title>
<script>
function agregarevento() {
var elemento =
document.querySelector
("section > button");
elemento.onclick = mostrarmensaje;}
function mostrarmensaje() {
alert("Presionó el botón");}
window.onload = agregarevento;
</script></head>
agregarevento() obtiene una referencia a
<button> y define su atributo onclick para
ejecutar mostrarmensaje() al pulsar el botón.
41. EVENTOS.
No hay diferencia entre declarar el
atributo onload en el elemento
<body> o en el objeto Window,
pero debido a que siempre debe
separar el código JavaScript del
documento HTML y desde el
código es más fácil definir el
atributo en el objeto Window, esta
es la práctica recomendada.
42. EVENTOS.
No se recomienda el uso de atributos de
evento en elementos HTML porque es
contrario al propósito principal de
HTML5 que es proveer una tarea
específica para cada uno de los
lenguajes involucrados. HTML debe
definir la estructura del documento, CSS
su presentación y JavaScript su
funcionalidad.
43. EVENTOS.
Definir estos atributos desde código
JavaScript, tampoco se recomienda. Por
estas razones, se han incluido nuevos
métodos en el objeto Window para
controlar y responder a eventos.
44. EVENTOS.
addEventListener(evento, listener, captura):
Prepara un elemento para responder a un
evento.
El primer atributo es el nombre del evento
(sin el prefijo on).
El segundo es una referencia a la función
que responderá al evento (llamada listener).
El tercer atributo es un booleano que
determina si el evento va a ser capturado
por el elemento o se propagará a otros
elementos (generalmente se ignora o se
declara como false).
46. EVENTOS.
Los nombres de los eventos que requieren
estos métodos no son los mismos que los
nombres de los atributos utilizado hasta el
momento.
Los nombres de los atributos se han definido
agregando el prefijo on al nombre real del
evento. Por ejemplo, el atributo onclick
representa el evento click. El evento load
(onload), el evento mouseover (onmouseover)
y así sucesivamente.
47. EVENTOS.
En el método addEventListener() para hacer
que un elemento responda a un evento, tiene
que especificar el nombre real del evento
entre comillas.
50. EVENTOS.
function mostrarmensaje() {
alert("Presionó el botón");}
window.addEventListener
("load", agregarevento);
</script>
</head>
<body>
<section>
<h1>Sitio Web</h1>
<button type="button">Mostrar</button>
</section>
</body></html>
Ahora se utiliza el método
addEventListener() para
agregar listeners al objeto
Window y el elemento
<button>
51. OBJETOS EVENT.
Cada función que responde a un evento
recibe un objeto que contiene información
acerca del evento. Aunque algunos eventos
tienen sus propios objetos, existe un objeto
llamado Event que es común a cada evento.
Las siguientes son algunas de sus
propiedades y métodos:
target.
type.
preventDefault().
stopPropagation().
52. OBJETOS EVENT.
Propiedades y métodos:
target: Esta propiedad devuelve una
referencia al objeto que ha recibido el
evento (generalmente es un objeto
Element).
type: Esta propiedad devuelve una cadena
de caracteres con el nombre del evento.
preventDefault(): Este método cancela el
evento para prevenir que el sistema realice
tareas por defecto.
stopPropagation():
53. OBJETOS EVENT.
Propiedades y métodos:
stopPropagation(): Este método detiene la
propagación del evento a otros elementos,
de modo que solo el primer elemento que
recibe el evento puede procesarlo
(normalmente se aplica a elementos que se
superponen y pueden responder al mismo
evento).
54. OBJETOS EVENT.
El objeto Event se envía a la función como un
argumento y, por tanto, debe declarar un
parámetro que recibirá este valor. El nombre
del parámetro es irrelevante, pero se define
normalmente como e o evento.
55. OBJETOS EVENT.
<!DOCTYPE html><html lang="es"><head>
<meta charset="utf-8"><title>JavaScript</title>
<script>
function agregareventos() {
var lista = document.
querySelectorAll("section > p");
for (var f = 0; f < lista.length; f++) {
var elemento = lista[f];
elemento.addEventListener
("click", cambiarcolor);}
}
56. OBJETOS EVENT.
function cambiarcolor(evento) {
var elemento = evento.target;
elemento.style.backgroundColor =
"#999999";}
window.addEventListener
("load", agregareventos);
</script>
</head>
58. OBJETOS EVENT.
Se agrega un listener para el evento click a
cada elemento <p> dentro del elemento
<section> del documento, pero todos se
procesan con la misma función.
Para identificar en qué elemento ha hecho
clic el usuario desde la función, se lee la
propiedad target del objeto Event.
59. OBJETOS EVENT.
Esta propiedad devuelve una referencia al
objeto Element que representa el
elemento que ha recibido el clic. Usando
esta referencia, se modifica el fondo del
elemento. En consecuencia, cada vez que
el usuario hace clic en el área ocupada
por un elemento <p>, el fondo de ese
elemento se vuelve gris.
60. OBJETOS EVENT.
El objeto Event se pasa de forma automática
cuando se llama a la función. Si desea enviar
valores propios junto con este objeto, puede
procesar el evento con una función anónima.
La función anónima solo recibe el objeto
Event, pero desde el interior de esta función
puede llamar a la función que se encarga de
responder al evento con todos los atributos
necesarios.
61. OBJETOS EVENT.
<script>
function agregareventos()
{ var lista = document.querySelectorAll
("section > p");
for (var f = 0; f < lista.length; f++)
{ var elemento = lista[f];
elemento.addEventListener
("click", function(evento) {
var mivalor = 125;
cambiarcolor(evento, mivalor);});
}
}
62. OBJETOS EVENT.
<script>
function agregareventos()
{ var lista = document.querySelectorAll
("section > p");
for (var f = 0; f < lista.length; f++)
{ var elemento = lista[f];
elemento.addEventListener
("click", function(evento) {
var mivalor = 125;
cambiarcolor(evento, mivalor);});
}
}
En vez de llamar a la
función cambiarcolor()
directamente, primero
se ejecuta una función
anónima.
63. OBJETOS EVENT.
<script>
function agregareventos()
{ var lista = document.querySelectorAll
("section > p");
for (var f = 0; f < lista.length; f++)
{ var elemento = lista[f];
elemento.addEventListener
("click", function(evento) {
var mivalor = 125;
cambiarcolor(evento, mivalor);});
}
}
La función anónima, recibe el objeto Event,
declara una nueva variable llamada mivalor
con el valor 125, y luego llama a la función
cambiarcolor() con ambos valores. Usando
estos valores, la función cambiarcolor()
modifica el contenido del elemento.