EDIT: Esto es probablemente un enfoque mejor que mi respuesta original:
Ejemplo:http://jsfiddle.net/patrick_dw/xN6d5/5/
var $target = $('#SearchHere').children(),
$next = $target;
while($next.length) {
$target = $next;
$next = $next.children();
}
alert($target.attr('id'));
o el presente, que es incluso una poco más corto:
Ejemplo:http://jsfiddle.net/patrick_dw/xN6d5/6/
var $target = $('#SearchHere').children();
while($target.length) {
$target = $target.children();
}
alert($target.end().attr('id')); // You need .end() to get to the last matched set
Respuesta original:
Esto parece funcionar:
Ejemplo:http://jsfiddle.net/xN6d5/4/
var levels = 0;
var deepest;
$('#SearchHere').find('*').each(function() {
if(!this.firstChild || this.firstChild.nodeType !== 1 ) {
var levelsFromThis = $(this).parentsUntil('#SearchHere').length;
if(levelsFromThis > levels) {
levels = levelsFromThis;
deepest = this;
}
}
});
alert(deepest.id);
Si sabe que lo más profundo será una determinada etiqueta (u otra cosa), podría acelerarla reemplazando .find('*')
con .find('div')
por ejemplo.
EDIT: actualizado a la verificación Sólo la longitud si el elemento actual no no tienen una firstChild
o si lo hace, que el firstChild no es un nodo de tipo 1.
no pretende ser una crítica, pero estoy fascinado por qué te gustaría? –
Para todos aquellos que están encontrando esto a través de los motores de búsqueda, actualicé la esencia de jonathan con la versión mejorada de patrick dw. También expandió las instrucciones un poco. Puede encontrarlo aquí: [jQuery gps de plugin más profundo] (https://gist.github.com/1014671 "jQuery deep plugin gist") –