Programmeren in JavaScript/Het Document Object Model: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Vromelo (overleg | bijdragen)
Nieuwe pagina aangemaakt met '== Inleiding == Het document object model is een model waarbij een HTML document wordt omgezet in een boomstructuur van objecten. Als voorbeeld nemen we onze testpa...'
 
Vromelo (overleg | bijdragen)
Regel 55:
De bijbehorende boomstructuur van objecten ziet er als volgt uit:
 
[[Afbeelding:DOM boom van testpagina.PNG]]
Elk knooppunt in de boom is een object.
 
In de boom wordt bijvoorbeeld ''document'' de ouder (parent) van ''html'' genoemd en ''divhead'' de ouder van ''brscript''. Verder worden ''head'' en ''body'' kinderen (children) van ''html'' genoemd en heeft ''divhead'' driezeven kinderen: een stukje text, het HTML-element ''br'' en weer een stukje text.
 
Elk knooppunt in de boom is een object met eigenschappen en methoden.
HetElk object ''document''knooppunt heeft een eigenschap ''childrenchildNodes'', een array die alle kinderen van document bevat. Overigens hebben alle nodes deze eigenschap.
 
Met javascript kunnen we elk van deze kinderen benaderen, bijvoorbeeld om informatie hierover af te drukken. U kunt dit zelf proberen door het script in de testpagina te plakken.
{{Code
| Taal=JavaScript
Regel 74 ⟶ 75:
</source>
}}
Als we dit op de testpagina uitproberen, zien we dat ''document'' twee kinderen heeft, beide met nodeName "html". Wat zou het verschil tussen beide nodes zijn? dat kunnen we zien aan een eigenschap van deze nodes, nl ''nodeType''. Laten we eens gaan kijken, en meteen vragen hoeveel kinderen elk van deze nodes heeft:
 
{{Code
Regel 91 ⟶ 92:
De testpagina geeft uitsluitsel:
 
CHILD: html (Type=10) 0 kinderen
 
CHILD: HTML (Type=1) 2 kinderen
 
Hieronder de betekenis van nodeType:
 
{| class="prettytable"
!Element-type
!nodeType
|-
|HTML-element
|1
|-
|Attribuut van een HTML-element
|2
|-
|Tekst
|3
|-
|Commentaar
|8
|-
|Document
|9
|-
|Document-type
|10
|}
 
Het eerste object komt dus overeen met <!DOCTYPE html>.
Het tweede object is het HTML-element ''html'' hetgeen de rest van het document bevat.
 
De afbeelding is ietwat vereenvoudigd. We zullen later zien dat er op veel meer plaatsen tekst kan woorkomenvoorkomt dan dewe afbeeldingmisschien suggereertverwachten. Voornamelijk zijn dat dan spaties e.d. die welliswaar niet op het scherm getoond worden, maar wel in het HTML-document voorkomen en dus ook in de boom.
 
De attributen van HTML-elementen zijn in het plaatje niet weergegeven maar zijn wel degelijk onderdeel van de boom. Elk attribuut vormt weer een object en is ophehangenopgehangen aan het object dat het bijbehorende HTML-element vertegenwoordigd.
 
Met het onderstaande script kunnen we de afbeelding verder controleren. Het plaatje wijkt op één plaats af van het HTML-document. Probeer die plaats te vinden.
Het object document bevat methoden om deze boom te doorzoeken
 
{{Code
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.