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.
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
document.getSelection().toString() devolverá "est qui dolorem ipsum quia dolor sit amet"
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í.