Stackoverflow Response: Find closest element in complete document
http://stackoverflow.com/questions/16194578/find-closest-element-in-complete-document/16194734#16194734
by Terry Young
HTML
<div class="you" data-verb="slapped">
<div>
<div class="you" data-verb="found"></div>
<div class="me"></div>
<div></div>
<div></div>
<div></div>
<div class="you" data-verb="punched"></div>
</div>
</div>
<div id="who"></div>
JavaScript
$(document).ready(function () {
var $me = $('.me'),
crazyNumber = 99999999,
allOfYou = [
{
elements: $me.parentsUntil('.you'),
target: $me.parentsUntil('.you').parent()
},
{
elements: $me.nextUntil('.you'),
target: $me.nextUntil('.you').andSelf().filter(':last').next()
},
{
elements: $me.prevUntil('.you'),
target: $me.prevUntil('.you').andSelf().filter(':last').prev()
}
],
sorted = allOfYou.sort(function (objA, objB) {
var a = objA.elements.length + 1 || crazyNumber,
b = objB.elements.length + 1 || crazyNumber;
return a - b;
});
$('#who').html("You " + sorted[0].target.data('verb') + ' me! :)');
});