Ir al contenido
Suscribete

Extensiones en el DOM de HTML5

Guardado en: Web
22:34 23/01/2008

Una de las cosas que mas me gustan del nuevo HTML5 son las extensiones de los objetos HTMLDocument y HTMLElement. Si bien son cosas que podemos hacer actualmente con librerías como prototype o jQuery, no viene mal que se puedan realizar de manera nativa.

HTMLDocument

El nuevo HTML5 define el metodo getElementsByClassName() para seleccionar elementos a través de su clase.

innerHTML pasa a ser estandar, y a nivel de documento (antes solo estaba implementado en HTMLElement). De esta forma podemos serializar todo el documento.

activeElement devuelve el elemento que tiene foco actualmente. Si ningún elemento tiene foco devuelve el body de la página.

hasFocus determina si el documento tiene foco.

getSelection() devuelve un objeto que representa la selección o selecciones actuales del documento. Si por ejemplo el usuario selecciona el siguiente bloque de texto en su navegador Texto seleccionado document.getSelection().toString() devolverá "est qui dolorem ipsum quia dolor sit amet"

HTMLElement

Tambien implementa getElementsByClassName(). Combinado con getElementById() podemos restringir el ámbito de la búsqueda. Así podremos escribir sentencias como:

var articulos = document.getElementById('contenido').getElementsByClassName('articulo');

Al igual que en HTMLDocument, innerHTML pasa a ser estandar.

classList devuelve un objeto con el que poder manipular las clases de un elemento. Esto es muy útil cuando tenemos un elemento con más de una clase.

clases = document.getElementById('contenido').classList;
clases.has('clase'); // Vemos si el elemento tiene una clase determinada
clases.add('clase'); // Añade una clase al elemento
clases.del('clase'); // Elimina una clase del elemento
clases.toggle('clase'); // Si el elemento tiene la clase, la elimina. Si no la tiene la añade

Para los elementos a, area y link se añade un objeto llamado relList con los mismos métodos para manejar el atributo rel

Lo malo: que las podremos usar cuando Microsoft las implemente en Internet Explorer 17 o así.

Sobre mí

Alejandro Fernández

Alejandro Fernández Webero de profesión y fotógrafo de afición. Escribo con más o menos acierto sobre lo que caiga en mis manos y me interese.

Si crees tener algo que pueda interesarme: Contacta

Todos los articulos están bajo licencia Creative Commons by-nc-sa a no ser que se indique lo contrario.

Powered by Wordpress