getelementsbyclassname
nog niet alle browsers kunnen getelementsbyclassname uitvoeren

home | index | menu | help

Er is geen CSS ondersteuning.

		

dit is een paragraph

dit is een andere paragraph

dit is nog een paragraph

weer een andere paragraph

ook een paragraph

dit is weer een paragraph

de laatste paragraph

		
		

		
		

Plaats het onderstaande stukje javascript in de head-sectie van jouw pagina, en daarna heb je de beschikking over getelementsbyclassname, wat op het moment van schrijven nog niet door alle browsers "begrepen" wordt. Vandaar dat de naam van de fuctie (op deze pagina) aangepast is om geen problemen te krijgen als een browser (per ongeluk) getelementsbyclassname wél kent.. De funktie-naam: getElementsByClass (zonder "name" aan het eind) zal geen browser "dwarszitten".

<script type="text/javascript">
	function getElementsByClass(knoopje,doedezeclass,tag){
		var i,j,klaselementen=[];
		var elementjes=knoopje.getElementsByTagName(tag);
		var elementjeslengte=elementjes.length;
		var hetpatroon=new RegExp(doedezeclass);
		for (i=0,j=0;i<elementjeslengte;i++){
			if (hetpatroon.test(elementjes[i].className)){
				klaselementen[j]=elementjes[i];
			j++;}}
	return klaselementen;}
</script>

Als je even in de broncode van de getElementsByClass procedure kijkt, zie je hoe het voorbeeld in-elkaar zit. De syntax om een array te vullen met alle class-elementen is (in dit voorbeeld):
getElementsByClass(document,'een','p');
document is de "node", -een- is de class-name en 'p' is de gewenste tag. Als je de functie op alles wilt "loslaten" vervang je de 'p' door '*'. Verder niets te melden of het zou moeten zijn dat het javascript foutloos is bevonden door JSLint en dat de pagina valideert op html5 en de CSS.

cache 06-09-2010