function tatas()

© 2011 quinqui - quinqui_unica[at]yahoo.com.ar

/**
@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.

Instrucciones

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.

Ejemplo

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.

¿Quién es el tatara-tatara-abuelo del botón?

Aquí el código fuente:

<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>