检查这个 jQuery 代码:
var maxDepth = 0;
$('*').each(function(){
$(this).attr('depth', $(this).parents().length);
if ($(this).parents().length > maxDepth)
maxDepth = $(this).parents().length;
});
$('[depth="' + maxDepth + '"]').css('background','black');
jsFiddle
它可能远非最佳,但它可以完成工作。
版本 2,不修改 DOM:
var maxDepth = 0;
var deepestElements = [];
$('*').each(function(){
$(this).attr('depth', $(this).parents().length);
if ($(this).parents().length == maxDepth){
deepestElements.push($(this));
} else if ($(this).parents().length > maxDepth){
deepestElements = [];
deepestElements.push($(this));
maxDepth = $(this).parents().length;
}
});
$(deepestElements).each(function(){
$(this).css('background','black');
});
jsFiddle2