Я думаю, что Ваш метод является лучшим способом. И если Вы чувствуете, что это не выглядит хорошим, просто превращают его в плагин:
jQuery.fn.firstAfter = function(filter){
return this.nextAll(filter).eq(0);
}
Я думаю эти siblings()
, функция - то, что Вы ищете. Попробуйте что-то вроде этого:
$(".counter").siblings("span");
Я не уверен, что самый близкий метод добьется цели, но раз так..., возможно, можно ли извлечь самый близкий метод от 1,3 и превращение его в плагин?
у меня не было шанса попробовать это, но дать ему выстрел. Это не может причинить боль:
(function($) {
$.fn.closest = function (selector) {
return this.map(function(){
var cur = this;
while ( cur && cur.ownerDocument ) {
if ( $(cur).is(selector) )
return cur;
cur = cur.parentNode;
}
});
}
})(jQuery);
Попробуйте что-то вроде этого:
$(".counter ~ span:first");
Hope, которая помогает!