I want to find the first span element after class counter, in code something like this:
$(".counter + span")
Try something like this:
$(".counter ~ span:first");
Hope that helps!
I think the siblings()
function is what you are looking for. Try something like this:
$(".counter").siblings("span");
Similar to the marked answer but looks a little cleaner using the :first selector:
$('.counter').nextAll('span:first')
I'm not sure that the closest method will do the trick, but if so... maybe you can extract the closest method from 1.3 and turning it into a plugin?
I haven't had a chance to try this, but give it a shot. It can't hurt:
(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);
I think your method is the best way. And if you feel it doesn't look good just turn it into a plugin:
jQuery.fn.firstAfter = function(filter){
return this.nextAll(filter).eq(0);
}