Contenido

Firefox 3, integrará getElementByClassName

3 Feb

+ 6

Al parecer la nueva versión del navegador de Mozilla, integrará la famosa función getElementsByClassName como parte de su core. Esto es una gran noticia ya que no tendremos que realizar el apaño mediante javascript y dispondremos de una funcionalidad integrada en el núcleo de la aplicación, mejorando la respuesta y el rendimiento.

Esta función está definida en el Working Draf de Web Applications 1.0 (HTML 5) y seguramente pasará a formar parte del resto de los navegadores en futuras versiones.

/*
    Written by Jonathan Snook, http://www.snook.ca/jonathan
    Add-ons by Robert Nyman, http://www.robertnyman.com
*/

function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
}

Al estár integrada en el nucle de la aplicación la podremos usar de esta forma para conseguir cualquer elemento de nuestra aplicación

document.getElementsByClassName('test'); // Nos devolverá los elementos con la class "test"
document.getElementsByClassName('test prueba'); // Nos devolverá los elementos con la class "test" y "prueba"
document.getElementById('content').getElementsByClassName('rojo'); // Nos devolverá los elementos con la class 'rojo' dentro de elemento 'main'
  • Espera, piensan agregar el método getElementsByClassName como propietario?

    Porque el working draft que mencionas es para html5, y estamos hablando de javascript. O no?

    Estoy algo confundido, un saludo.

  • #1 Fallo mio, el working draft hace referencia a los webapps osea, son recomendaciones para las aplicaciones web en general. Me colé con el HTML5 🙁

    En cuanto a lo que me comentas, no será propietario, osea en las recomendaciones que te comentaba antes, aconsejan que el nuevo DOM incorpore esta funcionalidad, y Firefox ha sido la primera en decir que la piensa seguir.

    Espero haberte aclarado algo 😉

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.