Función getElementsByClassName

Función que suple la carencia de los navegadores para buscar elementos por el nombre de la clase (por lo visto Firefox 3 ya la implementa de forma nativa).

document.getElementsByClassName = function(className, parentElement)
{
  if (Prototype.BrowserFeatures.XPath) {
  var q = ".//*[contains(concat(' ', @class, ' '), ' " + className + " ')]";
  return document._getElementsByXPath(q, parentElement);
}
else
{
  var children = ($(parentElement) || document.body).getElementsByTagName('*');
  var elements = [], child;
  for (var i = 0, length = children.length; i < length; i++) {
    child = children[i];
    if (Element.hasClassName(child, className))
      elements.push(Element.extend(child));
  }
  return elements;
  }
};

Si te aburres puedes consultar una comparativa que se ha hecho entre ésta y otras funciones similares. Yo elegí la que me pareció mejor en cuanto a rendimiento y claridad.

Otros artículos de esta serie:

[seriesposts show_date=0 order=asc]

Publicar un Comentario

Si es la primera vez que escribes, tu comentario será moderado por un administrador.

Con el fin de garantizar un ambiente de debate respetuoso, no se permitirán comentarios:

  • insultantes, difamatorios, racistas, sexistas, y/o discriminatorios
  • excesivamente críticos con otros participanes
  • que no aporten nada, sin sentido o repetidos
  • con enlaces considerados publicidad o spam
  • con material protegido por derechos de autor
*
*