
JavaScript se ha convertido rápidamente en uno de los lenguajes más utilizados para el desarrollo de aplicaciones en Internet es incluso es utilizado para el desarrollo de aplicaciones para dispositivos móviles. Una área de suma importancia para el completo aprovechamiento de este lenguaje es el dominio de las instrucciones, propiedades y eventos que se encuentran al rededor del DOM o Document Object Model.
Este curso no es un curso básico de JavaScript. Usted debe tener conocimientos básicos del mismo, pues no se explicarán cosas esenciales como lo ciclos, las variables o estructuras condicionales, así como conocer las etiquetas y las reglas de estilo, sin necesidad de ser un experto.
El objetivo de este curso es aprender los métodos, propiedades y eventos relacionados con el DOM, y algunos ejemplos, como el desarrollo de un sencillo juego de cajita de números o una página en parallax.
Historia Document Object Model
(las fechas son aproximadas)
En esta lección encontrarás los archivos del curso.
¿Qué es DOM?
En HTML y XML TODO es un nodo.
Apuntes de la sección : Introducción al estudio del DOM
Document Object Model Heredado o Legado
Document Object Model: document.anchors
Document Object Model: document.body
Document Object Model: document.documentElement
Document Object Model: document.forms
Regresa las referencias de las etiquetas <form> en un arreglo.
Acepta:
Document Object Model: document.images
Document Object Model: document.links
Document Object Model: document.url
Document Object Model: document.title
Document Object Model: document.cookie
Permite grabar información en el disco duro del cliente.
La información se almacena como nombre=valor.
Los valores son persistentes.
Podemos crear, modificar y borrar las cookies con JS.
Podemos crear una cookie por medio de:
document.cookie = "usuario=Pedro Infante; expires=Thu, 18 Dec 2013 12:00:00 UTC";
Podemos leer una cookie:
var x = document.cookie;
El formato sería una cadena similar a:
cookie1=valor; cookie2=valor; cookie3=valor;
Document Object Model: document.write()
Apuntes de la sección 2: El DOM legado o heredado
DOM: Seleccionar por identificador
DOM: Seleccionar por tipo de etiqueta
DOM Seleccionar por clase
DOM: Seleccionar por nombre
DOM: Query Selector
querySelector();
querySelectorAll();
Apuntes de la sección 3: Acceder a los nodos DOM
Las propiedades de los nodos
Los valores de los nodos: nodeValue
DOM: Los atributos de los nodos
DOM: Modificar los nodos
elemento.getAttribute("align");
elemento.setAttribute("align","left");
DOM: Trabajar con los atributos del nodo
Los métodos para modificar los nodos:
• getAttribute()
• setAttribute()
• removeAttribute()
• hasAttribute()
Estos métodos son compatibles en todos los navegadores.
DOM: Modificar, tomar y remover texto de un nodo
Por medio de la siguiente propiedad podemos modificar, recuperar su valor o remover texto con o sin etiquetas:
innerHTML
outerHTML
insertAdjacentHTML(insertionPoint, htmlText);
textContent
La única compatible con todos los navegadores es la primera.
Nombre de la regla en cascada y su valor:
elemento.style.estilo = valor
DOM: classlist
En este video veremos un ejemplo del método classList().
className obtiene y establece el valor del atributo class del elemento especificado.
Sintaxis
var cName = elementNodeReference.className;
elementNodeReference.className = cName;
Apuntes a la sección 4: Modificar los nodos y sus propiedades
Crear elementos del DOM
1. Crear los elementos (createElement)
2. Poblar el elemento (innerHTML)
3. Añadir los elementos (addChild)
Ejemplo:
//Crea el nodo
document.createElement("li");
//Añade el nodo
miElemento.appendChild(nuevoElemento);
//Llena o puebla el nodo
nuevoElemento.innerHTML = "Texto";
//Inserta antes del nodo
parent.insertBefore(nuevoElemento, otroElemento);
DOM: Insertar “antes” un nodo
Insertar un nodo
El método “insertBefore()” inserta un elemento como un “primer hijo” (first child).
El método “insertChild()” inserta un elemento como “último hijo” (last child) y hay que indicar a partir del hijo.
elemento.insertBefore(insertar,nodoExistente);
DOM: Eliminar un nodo
DOM: Clonar un nodo
DOM:Crear un nodo de texto
DOM: Reemplazar un nodo
Apuntes de la sección 5: Crear, modificar y eliminar nodos con JavaScript
DOM: Navegar en el documento
Los métodos para moverse a través del árbol DOM son:
DOM: Parent node
DOM: childNodes
DOM: children
DOM: firstChild y lastChild
Las propiedades “firstChild” y “lastChild” regresan el primer y el último nodo de una “nodeList”.
Regresa un nodo ya sea elemento, texto o comentario.
DOM: previousSibling y nextSibling
Las propiedades “previousSibling (izquierda)” y “nextSibling (derecha)” nos proporcionan los nodos anterior y posterior del nodo seleccionado.
Regresa un nodo ya sea elemento, texto o comentario.
Son propiedades de sólo lectura.
En este video realizaremos un sencillo juego de "caja de números" con JavaScript
Apuntes de la sección 6: Navegar en la estructura DOM
DOM: El registro de los eventos
DOM: Usar eventos en un navegador viejo
Los navegadores IE6-8 no tienen addEventListener(). Se utiliza:
attachEvent(evento, funcion);
No utiliza el parámetro para la propagación.
Si es crítico el manejo de navegadores viejos, puede considerar utilizar jQuery.
DOM: Las propiedades de los eventos
DOM: El modelo de propagación de eventos
El modelo de propagación de eventos tiene tres fases: captura, notificación y burbujeo.
IE8- no soportan este modelo.
DOM: Detener la propagación de eventos
DOM: Cancelar el comportamiento por omisión
DOM: Eliminar un evento
Apuntes e la sección 7: El manejo de eventos en DOM
Eventos de carga de página
onload
onunload (desactualizado)
Eventos del ratón DOM1:
onclick
onmousemove
onmouseover
onmouseout
onmousedown
DOM: Eventos de la página
Eventos de carga de página
onload
onunload (desactualizado)
DOM: Los eventos del ratón
Eventos del ratón DOM1:
onclick
onmousemove
onmouseover
onmouseout
onmousedown
DOM: Los eventos del ratón
Eventos del ratón DOM1:
onclick
onmousemove
onmouseover
onmouseout
onmousedown
DOM: Los eventos del ratón
Eventos del ratón DOM1:
onclick
onmousemove
onmouseover
onmouseout
onmousedown
DOM: Los eventos del ratón
Eventos del ratón DOM1:
onclick
onmousemove
onmouseover
onmouseout
onmousedown
DOM: Los eventos del teclado
Eventos del teclado
onkeydown
onkeyup
onkeypress
DOM: Los eventos de las cajas de entrada
Eventos de las cajas de entrada
DOM: Los eventos de las formas
DOM: Los eventos de la ventana
onscroll
Las propiedades pageXOffset y pageYOffset regresan los pixeles que el elemento fue “scrolleado” en forma horizontal y vertical, respectivamente.
Las propiedades pageXOffset y pageYOffset son equivalente a scrollX y scrollY.
Apuntes de la sección 8: Los eventos del DOM
DOM: El objeto form
Los objetos “form” los encuentras en el arreglo forms[] del objeto document.
Los formularios o formas aparecen en el orden en el que aparecen en el documento.
El objeto form tiene un arreglo elements[] con cada uno de los elementos de la forma.
El orden en que aparecen es cómo aparecen en el código.
Otras propiedades del objeto son: action, encoding, method y target que corresponden a los atributos de la etiqueta.
Los eventos relacionados a un formularios son:
onsubmit
onreset
En ambos, si regresamos un valor falso, no se ejecutan.
DOM: Los elementos del formulario
Los elementos tradicionales de una forma son:
Botones <input type=”button”> o <button>
Cajas de verificación o checkboxes <input type=”checkbox”>
Archivos o files <input type=”file”>
Campos ocultos o hidden <input type=”hidden”>
Claves de acceso o password <input type=”password”>
Botones de radio <input type=”radio”>
El botón reset <input type=”reset”> o <button type=”reset”>
Los elementos tradicionales de una forma son:
El botón submit <input type=”submit”> o <button type=”submit”>
Lista sencilla o <select>
Lista múltiple o <select multiple>
Opciones de una lista u <option
DOM: Propiedades de los elementos de un formulario
Los elementos de un formulario tienen cuatro parámetros:
Dentro del código de un controlador de evento, la palabra clave “this” hace referencia al elemento de documento que ha activado el evento.
Podemos hacer referencia a otro elemento con this.form.x
DOM: Botones de conmutación
Los botones checkbox y radio tienen una propiedad “checked” booleano y “defaultChecked”, que determina si el objeto está seleccionado al iniciarse la página del formulario.
Al seleccionar uno de los botones, se activa el evento onclick()
Los navegadores modernos también activan el evento onchange()
DOM: Campos de texto
La propiedad “value” representa la cadena introducida por el usuario.
El controlador de evento onchange() se activa cuando el usuario introduce un nuevo texto o edita un texto existente.
El elemento “file” tiene un controlador de eventos onchange() pero la propiedad value es de sólo lectura.
Los campos de texto también reciben los eventos onkeyup(), onkeydown() y onkeypress().
Si regresamos un valor falso de estos eventos, la tecla pulsada no se regresa.
Otros eventos que son aceptados en las cajas de entrada son onfocus(), onblur y onselect()
DOM: Elementos select y option
Una lista <select> puede tener el atributo “multiple” para recibir más de una entrada, de lo contrario sólo recibe una.
Las opciones de ambas listas se crean con la etiqueta <option> y se representan en el objeto Option guardados en el arreglo options[] dentro del objeto Select.
El valor de la selección de la lista (propiedad value) no reside en el objeto Select, sino en cada uno de los objetos Option.
Al seleccionar o anula una selección, se lanza el evento onchange().
Cuando la lista es de un solo elemento, la propiedad seletedIndex indica el número o índice de la opción seleccionada.
Para listas múltiples hay que recorrer el arreglo options[] y verificar la propiedad value para cada una.
Cada elemento dentro de options[] contiene una propiedad “selected” y “text”.
La propiedad “value” es la que se envía al servidor, la propiedad “text” es la que el usuario ve en la pantalla (label).
En este video utilizaremos lo visto en toda la sección para validar un formulario sencillo.
Manejo de los eventos y los elementos de un formulario
En los dispositivos pequeños es muy incómodo un menú horizontal.
Por medio de los CSS podemos modificar la orientación del menú (y un poco de JavaScript), y con media query detectamos el tamaño del dispositivo.
En los dispositivos pequeños es muy incómodo un menú horizontal.
Por medio de los CSS podemos modificar la orientación del menú (y un poco de JavaScript), y con media query detectamos el tamaño del dispositivo.
En los dispositivos pequeños es muy incómodo un menú horizontal.
Por medio de los CSS podemos modificar la orientación del menú (y un poco de JavaScript), y con media query detectamos el tamaño del dispositivo.
En los dispositivos pequeños es muy incómodo un menú horizontal.
Por medio de los CSS podemos modificar la orientación del menú (y un poco de JavaScript), y con media query detectamos el tamaño del dispositivo.
En los dispositivos pequeños es muy incómodo un menú horizontal.
Por medio de los CSS podemos modificar la orientación del menú (y un poco de JavaScript), y con media query detectamos el tamaño del dispositivo.
En los dispositivos pequeños es muy incómodo un menú horizontal.
Por medio de los CSS podemos modificar la orientación del menú (y un poco de JavaScript), y con media query detectamos el tamaño del dispositivo.
Por lo general es muy requerido en las páginas web un deslizador de imágenes o slideshow. En los siguientes videos realizaremos un deslizador responsivo. En este video escribiremos las reglas de estilo.
Por lo general es muy requerido en las páginas web un deslizador de imágenes o slideshow. En los siguientes videos realizaremos un deslizador responsivo. En este video escribiremos las etiquetas HTML.
Por lo general es muy requerido en las páginas web un deslizador de imágenes o slideshow. En los siguientes videos realizaremos un deslizador responsivo. En este video escribiremos las reglas de estilo.
Por lo general es muy requerido en las páginas web un deslizador de imágenes o slideshow. En los siguientes videos realizaremos un deslizador responsivo. En este video escribiremos el código JS.
En los siguientes videos reuniremos la galería de fotos con nuestro deslizador de las mimas, haciéndola responsivas con mediaquerys.
En los siguientes videos reuniremos la galería de fotos con nuestro deslizador de las mimas, haciéndola responsivas con mediaquerys.
En este video realizaremos un menú oculto con el scroll, según el ejemplo de la W3C.
En este video crearemos un menú deslizable con encabezado, basado en los ejercicios de la W3C.
En este video construiremos un menú vertical con un submenú. basado en un ejercicio de la W3C.
En este video construiremos un menú vertical con un submenú. basado en un ejercicio de la W3C.
En este video construiremos un menú vertical con un submenú. basado en un ejercicio de la W3C.
El String.fromCharCode() método estático que devuelve una cadena creada mediante el uso de una secuencia de valores Unicode especificada.
El método includes () determina si un arreglo contiene un elemento especificado.
Este método devuelve true si el arreglo contiene el elemento, y false si no lo está.
Nota: el método includes () distingue entre mayúsculas y minúsculas.
El String.fromCharCode() método estático que devuelve una cadena creada mediante el uso de una secuencia de valores Unicode especificada.
El método includes () determina si un arreglo contiene un elemento especificado.
Este método devuelve true si el arreglo contiene el elemento, y false si no lo está.
Nota: el método includes () distingue entre mayúsculas y minúsculas.
El String.fromCharCode() método estático que devuelve una cadena creada mediante el uso de una secuencia de valores Unicode especificada.
El método includes () determina si un arreglo contiene un elemento especificado.
Este método devuelve true si el arreglo contiene el elemento, y false si no lo está.
Nota: el método includes () distingue entre mayúsculas y minúsculas.
El String.fromCharCode() método estático que devuelve una cadena creada mediante el uso de una secuencia de valores Unicode especificada.
El método includes () determina si un arreglo contiene un elemento especificado.
Este método devuelve true si el arreglo contiene el elemento, y false si no lo está.
Nota: el método includes () distingue entre mayúsculas y minúsculas.
El String.fromCharCode() método estático que devuelve una cadena creada mediante el uso de una secuencia de valores Unicode especificada.
El método includes () determina si un arreglo contiene un elemento especificado.
Este método devuelve true si el arreglo contiene el elemento, y false si no lo está.
Nota: el método includes () distingue entre mayúsculas y minúsculas.
Crear la tabla
Crear los estilos en cascada
Crear el archivo JS
Crear las variables
Crear los eventos
Cambiar el tablero
Barajar las cartas
Actualizar los datos
¿Se seleccionó la segunda carta?
¿Las cartas son iguales?
acierto
¿Las cartas son diferentes?
regresar
¿Se seleccionó la primer carta?
Voltear primera carta
Necesitamos escribir las rutinas para:
Voltear las cartas que no coinciden
Limpiar variables
Comprobar el juego
Por medio de las funciones del DOM podemos añadir renglones en forma dinámica a una tabla con JavaScript.
createElement() y appendChild()
Por medio de las funciones del DOM podemos añadir renglones en forma dinámica a una tabla con JavaScript.
createElement() y appendChild()
Podemos añadirlos desde un formulario HTML.
Por medio de las funciones del DOM podemos añadir renglones en forma dinámica a una tabla con JavaScript.
createElement() y appendChild()
Podemos añadirlos desde un formulario HTML.
Podemos añadir un botón para seleccionar un registro para ser borrado.
Necesitamos identificarlo para borrarlo.
Nuevamente desplegamos la tabla.
JavaScript se ha convertido rápidamente en uno de los lenguajes más utilizados para el desarrollo de aplicaciones en Internet es incluso es utilizado para el desarrollo de aplicaciones para dispositivos móviles. Una área de suma importancia para el completo aprovechamiento de este lenguaje es el dominio de las instrucciones, propiedades y eventos que se encuentran al rededor del DOM o Document Object Model.
Este curso no es un curso básico de JavaScript. Usted debe tener conocimientos básicos del mismo, pues no se explicarán cosas esenciales como lo ciclos, las variables o estructuras condicionales, así como conocer las etiquetas y las reglas de estilo, sin necesidad de ser un experto.
El objetivo de este curso es aprender los métodos, propiedades y eventos relacionados con el DOM, y algunos ejemplos, como el desarrollo de un sencillo juego de cajita de números o una página en parallax.
Para poder sacarle mayor provecho a este curso, usted debe tener algún editor de código como Aptana, SublimeText o Brackets, pero puede seguirnos con cualquier otro.. Los objetivos generales son:
Cuenta con lo apuntes en formato PDF y los ejercicios del curso al final del mismo.