Il metodo getElementsByClassName()
non è implementato nelle versioni obsolete di Internet Explorer. Possiamo tuttavia porvi
rimedio utilizzando una soluzione originariamente proposta da Dustin Diaz.
La soluzione, opportunamente adattata, è la seguente:
if (typeof document.getElementsByClassName !== 'function') {
var getElementsByClassName = function(searchClass, node, tag) {
var classElements = [];
if (node == null) {
node = document;
}
if (tag == null) {
tag = '*';
}
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
for (i = 0, j = 0; i < elsLen; i++) {
if (pattern.test(els[i].className)) {
classElements[j] = els[i];
j++;
}
}
return classElements;
}
}
I parametri node
e tag
sono opzionali ma ci permettono di restringere la ricerca ad uno specifico contesto.