JavaScript - Document Object Model lub DOM
Każda strona internetowa znajduje się w oknie przeglądarki, które można traktować jako obiekt.
Obiekt Document reprezentuje dokument HTML wyświetlany w tym oknie. Obiekt Document ma różne właściwości odnoszące się do innych obiektów, które umożliwiają dostęp do treści dokumentu i modyfikację.
Sposób uzyskiwania dostępu do treści dokumentu i jego modyfikowania nazywany jest Document Object Modellub DOM. Obiekty są zorganizowane w hierarchię. Ta hierarchiczna struktura dotyczy organizacji obiektów w dokumencie sieci Web.
- Window object- Najwyższe miejsce w hierarchii. Jest to najdalszy element hierarchii obiektów. 
- Document object- Każdy dokument HTML ładowany do okna staje się obiektem dokumentu. Dokument zawiera zawartość strony. 
- Form object - Wszystko zawarte w tagach <form> ... </form> ustawia obiekt formularza. 
- Form control elements - Obiekt formularza zawiera wszystkie elementy zdefiniowane dla tego obiektu, takie jak pola tekstowe, przyciski, przyciski opcji i pola wyboru. 
Oto prosta hierarchia kilku ważnych obiektów -
 
                Istnieje kilka DOMów DOM. Poniższe sekcje szczegółowo wyjaśniają każdy z tych DOM i opisują, jak można ich używać do uzyskiwania dostępu i modyfikowania zawartości dokumentu.
- Legacy DOM - to model, który został wprowadzony we wczesnych wersjach języka JavaScript. Jest dobrze obsługiwany przez wszystkie przeglądarki, ale umożliwia dostęp tylko do niektórych kluczowych części dokumentów, takich jak formularze, elementy formularzy i obrazy. 
- W3C DOM - ten model obiektowy dokumentu umożliwia dostęp i modyfikację całej zawartości dokumentu i jest standaryzowany przez World Wide Web Consortium (W3C). Ten model jest obsługiwany przez prawie wszystkie współczesne przeglądarki. 
- DOM IE4 - ten model obiektowy dokumentu został wprowadzony w wersji 4 przeglądarki Internet Explorer firmy Microsoft. IE 5 i nowsze wersje obsługują większość podstawowych funkcji W3C DOM. 
Zgodność z DOM
Jeśli chcesz napisać skrypt z możliwością elastycznego korzystania z W3C DOM lub IE 4 DOM w zależności od ich dostępności, możesz użyć metody testowania możliwości, która najpierw sprawdza istnienie metody lub właściwości, aby określić, czy przeglądarka ma możliwości, których pragniesz. Na przykład -
if (document.getElementById) {
   // If the W3C method exists, use it
} else if (document.all) {
   // If the all[] array exists, use it
} else {
   // Otherwise use the legacy DOM
}