Ik had voor een project een getElementsByClassName functie nodig (dat die gewoon nog _steeds_ niet ingebouwd is...). Na wat zoeken vond ik van Robert Nyman een functie en ik wilde daar een object method van maken, wat resulteerde in de volgende code:
getElementsByClassName() is van Nyman, ik heb alleen de code zo aangepast dat het aansluit bij hoe ik code schrijf. Als ik deze code bij een pagina invoeg, dan geeft de FF Javascript console : "sClassName.replace is not a function". Ik zie zelf geen fout daar en afgezien van de naam van sClassName heb ik daar ook niks aangepast.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| Object.prototype.getElementsByClassName=getElementsByClassNameMethod; function getElementsByClassNameMethod(sClassName, sTagName) { getElementsByClassName(this, sClassName, sTagName) } function getElementsByClassName(oElm, sClassName, sTagName) { var arrElements=(sTagName=='*'&&oElm.all)?oElm.all:oElm.getElementsByTagName(sTagName); var arrReturnElements=[]; sClassName=sClassName.replace(/-/g, '\-'); var oRegExp=new RegExp('(^|\s)' + sClassName + '(\s|$)'); var oElement; for(var i=0; i<arrElements.length; i++) { oElement=arrElements[i]; if(oRegExp.test(oElement.className)) { arrReturnElements.push(oElement); } } return (arrReturnElements) } |
getElementsByClassName() is van Nyman, ik heb alleen de code zo aangepast dat het aansluit bij hoe ik code schrijf. Als ik deze code bij een pagina invoeg, dan geeft de FF Javascript console : "sClassName.replace is not a function". Ik zie zelf geen fout daar en afgezien van de naam van sClassName heb ik daar ook niks aangepast.