jesse1981
4/18/2013 - 12:40 AM

$(element).closest_descendent('something') Similar to jquery .closest() but traversing decedents.

$(element).closest_descendent('something')

Similar to jquery .closest() but traversing decedents.

$.fn.closest_descendent = function(filter) {
    var $found = $(),
        $currentSet = this; // Current place
    while ($currentSet.length) {
        $found = $currentSet.filter(filter);
        if ($found.length) break;  // At least one match: break loop
        // Get all children of the current set
        $currentSet = $currentSet.children();
    }
    return $found.first(); // Return first match of the collection
}