Find last descendant
Targeting/Selecting the last descendant of an element.
by vol7ron
HTML
<div>
<div>
<div>
<div>foo</div>
</div>
</div>
</div>
<div>
<div>
<div>
<div>bar</div>
</div>
</div>
</div>
<div>
<div>
<div>foo</div>
<div>bar</div>
</div>
</div>
<div>this shouldn't work</div>
CSS
div {border:1px solid black;padding:1em;}
JavaScript
jQuery(document).ready(function(){
(function($){
$.fn.lastDescendant = function(el){
var found = jQuery(el + ':first').siblings(el).andSelf();
var prev, curr;
var stack = this;
for (var i=0,n=found.length; i<n; i++){
curr = found.eq(i).find(el);
while (curr.length){
prev = curr;
curr = curr.find(el);
}
stack = stack.add(prev);
}
return stack;
};
})( jQuery );
jQuery.fn.lastDescendant('div')
.click(function(){
jQuery(this).css("background","#09c");
});
});