Document Object Model (Model Obiektów Dokumentu)

Sposób przedstawienia obiektów, z których składa się dokument i relacji między nimi.

DOM W3C

DOM W3C (nazywany czasem wg wersji: DOM1, DOM2, DOM3) służy głównie do przedstawienia dokumentów HTML oraz XML (XHTML). Używają go języki takie jak CSSJavascript do operowania na dokumentach.

Niekiedy zamiast terminu bracia używa się sąsiedzi

Wg W3C DOM dokument to drzewiasty zbiór węzłów. Węzeł może być elementem, ciągiem tekstu, komentarzem, itp. Każdy węzeł może mieć jednego rodzica, dowolną ilość braci i, jeśli jest elementem, dowolną ilość dzieci.

Metody W3C DOM

Węzeł Oryginalna nazwa Selektor CSS JavaScript DOM
Korzeń Root :root, html element.ownerDocument.documentElement
Rodzic Parent brak element.parentNode
Przodek Ancestor brak element.parentNode.parentNode...
Poprzedni sąsiad Previous sibling brak element.previousSibling
Następny sąsiad Next sibling element + sąsiad element.nextSibling
Pierwsze dziecko First child element > dziecko:first-child element.firstChild
Ostatnie dziecko Last child element > dziecko:last-child element.lastChild
Wszystkie dzieci Children element > * element.childNodes
Potomkowie Descendants element * element.getElementsByTagName('*')

Selektory CSS nie dają możliwości wybrania przodków, ani poprzedników, aby ułatwić przeglądarkom wyświetlanie progresywne (element występujący później w dokumencie nie powinien mieć wpływu na wcześniejsze) oraz uniemożliwić zrobienie kombinacji selektorów dających błędne koło.

DOM0

W3C DOM nie jest jedynym modelem dokumentu, jaki powstał na potrzeby stron WWW.

DOM Netscape (DOM0)
Znacznie różniący się od W3C DOM, był częścią pierwotnego języka Javascript wprowadzonego przez Netscape. Dzielił dokument na kolekcje obrazków, linków, fomularzy, itp. Część z tych rozwiązań została zachowana w W3C DOM dla kompatybilności wstecz.
DOM Microsoft (DHTML)
document.all był zbiorem wszystkich elementów posortowanym wg ich identyfikatora, kolejności w dokumencie lub nazwy tagu. Microsoft porzucił swój DOM na rzecz tego z W3C.

Zmodyfikowano: 18.08.2006, 18:42