function tatas()
/** @about Retorna parametro solicitado de objeto ancestro @author Carolina Casanova Garcia (aka quinqui) @date 17/06/2011 @param obj object Objeto HTML "hijo" @param niveles integer Cantidad de niveles a regresar desde "hijo". @param param string Opcional. Nombre del parametro HTML a retornar. Por defecto, retorna el objeto. @return object/mixed */ function tatas(obj, niveles, param) { if (typeof obj != "undefined") { var n = 0; var ult = 0; var tata = new Array(); tata[0] = obj; for (n = 1; n < niveles + 1; n++) { tata[n] = tata[n-1].parentNode; ult = n; } if (param == "id") { return tata[ult].id; } if (param == "name") { return tata[ult].name; } else { return tata[ult]; } } }
Mediante esta función Javascript, podemos obtener referencia a un objeto ancestro de otro.
La hice específicamente cuando quería obtener dinámicamente el ID de la capa donde estaba contenido un link, para poder recargar en la misma capa un script llamado vía Ajax.
Copia la función tatas()
en tu propio archivo .js
o donde quieras. La función está hecha para que retorne un parámetro del objeto ancestro, o bien el objeto en sí mismo. Tú modifica esto de acuerdo a tus propios intereses.
Por favor, no borres los créditos que he puesto junto a la función. Gracias.
Con este ejemplo, podemos comprobar el uso de la función para obtener el ID del objeto ancestro de otro, tanto desde el objeto "hijo" mismo, como para preguntar por el ID del ancestro de un tercero.
<div id="div_tataratatara"> <table id="table_tatara"> <tbody id="tbody_bisabuelo"> <tr id="tr_abuelo"> <td id="td_papa"> <input type="button" id="input_hijo" value="¿Quién es mi abuelo?" onclick="alert(tatas(this, 2, 'id'))" /> </td> <td id="td_mama"> <a href="#" id="link_hijo" onclick="alert(tatas(document.getElementById('input_hijo'), 5, 'id'))">¿Quién es el tatara-tatara-abuelo del botón?</a> </td> </tr> </tbody> </table> </div>