Bienvenido al tema de hoy les hablaremos sobre el DOM y mas exactamente porque aveces al asignar un elemento por ID este es nulo, ¿porqué?, pues desde acá desarrollaremos el tema

DOM o Document Object Model, no es mas que un Modelo en Objetos para la Representación de Documentos, los navegadores modernos crean un** árbol de nodos** de los elementos de una pagina

A partir de acá sabemos que al navegador web entra al sitio web renderiza todo tan rápido como pueda, ahora pues…, ¿y si yo asigno a una variable un elemento por ID que todavía no existe?, pues sera nula, y a partir de acá ya vemos el porque de que sea nulo, ¿pero cual es la solución?, esperamos a que el documento se cargue y luego ejecutamos la función que arranque con todo el procesamiento DOM, por ejemplo

Desde el body

<body onload="myMainFunction()">

Desde el javascript

window.onload=function() {
  // myMainFunction() o el código desde acá
}

Desde JQuery

$(function() {
// myMainFunction() o el código desde acá
});

Por otra parte, ¿que es un nodo exactamente?, “un nodo es uno de los elementos de una lista enlazada, de un árbol o de un grafo“, “Cada nodo será una estructura o registro que dispondrá de varios campos, y al menos uno de esos campos será un puntero o referencia a otro nodo

Un nodo se usa en estructura de datos de** lenguajes de bajo nivel** para crear estructura de datos de expansion dinámica

Este es un post de Jeferson De Freitas, el post se baso en mis experiencias y información sacada de http://es.wikipedia.org , puedo atender sus dudas en la caja de comentarios, y ante mano este tema no trata sobre DOM desde 0