Nu is er in de globale javascript scope een referentie naar het
document, die ook zo genaamd is. Nu kunnen we op elk dom element een
methode aanroepen om dieper in de boomstructuur elementen te vinden.
De twee meest gebruikte functies zijn getElementsByTagName en
getElementsById. De eerste levert een lijst van elementen op (kan dus
een lege lijst zijn als er niks wordt gevonden) en de tweede direct
het element waar naar je zoekt, of als er niks gevonden wordt null.
In jouw geval wil je dus zoeken naar anchor elementen om daar dan te
tekst inhoud uit te halen. met var a =
document.getElementsByTagName("a"); zou je dus een lijst van alle
anchors kunnen opvragen. Maar je zal natuurlijk een wat selectievere
lijst willen hebben. Je zou bijvoorbeeld alle anchor elementen binnen
in het formulier kunnen opvragen. Er is al standaard een lijst van
formulieren gedefineerd in het document object dus dat zouden we zo
kunnen doen: var a = document.forms[0].getElementsByTagName("a"); En
dan zou je de tekst er uit kunnen halen door de property textContent
(let op: deze property is niet in IE geimplementeerd, daar zou je
innerText moeten gebruiken) aan te spreken: var text =
a[0].textContent;
Ik hoop dat je zo een eind op weg bent geholpen, je zal ff een DOM
reference op moeten zoeken, want er is natuurlijk een heleboel wat ik
hier nog niet verteld heb.
Je kan overigens alle attributen van html elementen ook gewoon direct
aanspreken via de dom als properties van element, voorbeeld
verdergaand op hierboven: var href = a[0].href;
var spear = document.forms[0].spear;
var beschikbare_speren = spear.getAttribute('maxunits');
Om een kwart van de eenheden in te voegen (afgerond naar beneden):
var spear = document.forms[0].spear;
spear.value = Math.floor(spear.getAttribute('maxunits') / 4);
Ik definieer meestal een variabele, 'tc':
var tc = document.textContent ? 'textContent' : 'innerText';
Dit werkt uitstekend :)
Gebruik:
document.getElementsByTagName('b')[0][tc]; // haal coördinaat van het
huidige dorp op.
Dankje.