Document#
Document.documentElement#
Właściwość documentElement
zwraca element dokumentowy dla danego dokumentu. Jeśli dokument nie posiada elementu dokumentowego to zwrócona zostanie wartość null
. Właściwość jest tylko do odczytu.
Opis działania#
Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:
var root = document.documentElement;
gdzie poszczególne człony oznaczają:
- root - referencja do elementu dokumentowego w dokumencie lub wartość
null
. - document - dokument będący obiektem kontekstu.
Zgodnie z wymogami dopuszczalnej zawartości dla dokumentu, niezależnie od jego rodzaju (XML lub HTML), może istnieć tylko jedno dziecko będące węzłem typu Element
. Umieszczenie nadmiarowych elementów bezpośrednio w dokumencie spowoduje zrzucenie błędu przez parser XML (dotyczy to również metod wstawiających węzły w konkretne miejsce drzewa węzłów) lub ich odpowiednie przeniesienie w przypadku parsera HTML. Właściwość documentElement
pozwala na szybki dostęp do tego elementu. Z drugiej jednak strony, dzięki restrykcjom stawianym dla elementu dokumentowego można być pewnym, że identyczny rezultat osiągniemy poprzez wykorzystanie właściwości ParentNode.firstElementChild
oraz ParentNode.lastElementChild
.
W dokumentach HTML ich elementem dokumentowym będzie zawsze element z nazwą lokalną w postaci "html
" oraz z interfejsem elementu w postaci HTMLHtmlElement. Dużo większą swobodę zapewniają dokumenty XML, gdzie elementem dokumentowym może zostać dowolny element.
Prosty przykład:
<!DOCTYPE html>
<html>
<script>
function getInfoDoc(desc, whatDoc){
doc.write(desc + "<br>");
doc.write("Interfejs: " + whatDoc + "<br>");
doc.write("childNodes.length: " + whatDoc.childNodes.length + "<br>");
doc.write("documentElement: " + whatDoc.documentElement + "<br>");
doc.write("firstElementChild: " + whatDoc.firstElementChild + "<br>");
doc.write("lastElementChild: " + whatDoc.lastElementChild + "<br><br>");
}
var doc = document; // domyślny dokument tworzony przez parser HTML
getInfoDoc("Parametry dla domyślnego dokumentu tworzonego przez parser HTML (właściwość document):", doc);
var newDocXML = doc.implementation.createDocument(null, null, null); // nowy dokument XML
getInfoDoc("Parametry dla createDocument(null, null, null):", newDocXML);
var newDocHTML = doc.implementation.createHTMLDocument(""); // nowy dokument HTML
getInfoDoc("Parametry dla createHTMLDocument(''):", newDocHTML);
</script>
</html>
Składnia Web IDL#
interface Document : Node { readonly attribute Element? documentElement; };