domingo, 5 de noviembre de 2006

La Función de Referencia.

Esta es una de mis funciones javascript preferidas... o al menos a la que más partido le saco mientras desarrollo. Me gusta por tres motivos distintos:

  • Lo fácil que te hace referirte a cualquier objeto del DOM.

  • La gran cantidad de lineas de código que te permite ahorrar.

  • Que te permita crear funciones que sean independientes de si les entra un 'id' o un elmento.


  • Aquí la teneis:

    function $$(id_el_tag){
    var el;
    if (typeof id_el_tag=='object') el=id_el_tag; else {
    if ((arguments[1])||(arguments[1]==0))
    el=document.getElementsByTagName(id_el_tag)[arguments[1]];
    else el=document.getElementById(id_el_tag); }
    return el;}


    ¿Qué es lo que hace?

    Es sencilla...

  • Si la llamamos introduciendole como variable un elemento devuelve el mismo elemento.

  • Si la llamamos introduciendole sólo un id devuelve el elemento con ese id

  • Si la llamamos introduciendole un nombre de etiqueta (div, span, table) y como segunda variable un numero devuelve el numero de elemento indicado con esa etiqueta


  • ¿Como usarla?

    Siempre que queramos referirnos a un elemento del DOM llamamos directamente a esta función como si ya se tratase directamente del objeto.

    Así pasamos de esto:
    el=document.getElementById("mi_elemento");
    el.innerHTML="Nuevo contenido de mi elemento";
    el="";

    a esto:
    $$("mi_elemento").innerHTML="Nuevo contenido de mi elemento"


    Cuando creemos funciones en vez de decidir si la función necesita recibir un elemento directamente o su id llamamos a esta función para que pueda recibir cualquier de las dos cosas.

    Por ejemplo esta función admitiría recibir un elemento o un id:
    function cambiar_contenido(elemento,contenidoNuevo){
    $$(elemento).innerHTML=contenidoNuevo;}


    Por ultimo en vez de ir creando Matrices con todos los tags del DOM, si sabemos exactamente que número ocupa el que buscamos podemos referirnos a él de esta manera.

    $$("div",3).innerHTML="Soy el div número 4";
    // el 4 porque las matrices empiezan a contar desde 0.


    Y básicamente eso es todo lo que hace. Espero que os sea tan útil como me lo es a mi siempre.

    La función de Referencia: ikReferencia.js

    No hay comentarios: