Skip to content

Instantly share code, notes, and snippets.

@koohz
Created December 29, 2016 15:16
Show Gist options
  • Save koohz/276a70818677c6acbdde83a0b455950f to your computer and use it in GitHub Desktop.
Save koohz/276a70818677c6acbdde83a0b455950f to your computer and use it in GitHub Desktop.
jQuery.fn.nextOrFirst = function(selector) {
var next = this.next(selector);
return next.length ? next : this.prevAll(selector).last();
};
jQuery.fn.prevOrLast = function(selector) {
var prev = this.prev(selector);
return prev.length ? prev : this.nextAll(selector).last();
};
jQuery.fn.surrounding = function(selector, n, loop) {
var els = $([]);
for (var i = 1; i <= n; i++) {
if (loop) {
els = els.add($(this).nextOrFirst(selector));
els = els.add($(this).prevOrLast(selector));
} else {
els = els.add($(this).next(selector));
els = els.add($(this).prev(selector));
}
}
return els;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment