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");
          });

});