@ Cawas - хорошее решение , но я предлагаю использовать его не чрезмерно, потому что $('*')
дорого; -)
Независимо от этого,Я расширил его для своих нужд:
(function( $ ){
$.fn.findNextOverall = function(sel, returnItselfIfMatched) {
if(returnItselfIfMatched && $(this).is(sel)) return $(this);
var $result = $(sel).first();
if ($result.length <= 0) {
return $result;
}
$result = [];
var thisIndex = $('*').index($(this));
var selIndex = Number.MAX_SAFE_INTEGER;
$(sel).each(function(i,val){
var valIndex = $('*').index($(val));
if (thisIndex < valIndex && valIndex < selIndex) {
selIndex = valIndex;
$result = $(val);
}
});
return $result;
};
})( jQuery );
Так что, если returnItselfIfMatched
установлено true
, оно возвращает себя, если оно соответствует самому селектору.Полезно, если вы не знаете, какой элемент вызывает, и вы ищете именно себя.