Find the next element that is not immediate?

前端 未结 6 1386
-上瘾入骨i
-上瘾入骨i 2020-12-17 09:27

I want to find the first span element after class counter, in code something like this:

相关标签:
6条回答
  • 2020-12-17 09:43

    $(".counter + span")

    0 讨论(0)
  • 2020-12-17 09:47

    Try something like this:

    $(".counter ~ span:first");
    

    Hope that helps!

    0 讨论(0)
  • 2020-12-17 09:49

    I think the siblings() function is what you are looking for. Try something like this:

    $(".counter").siblings("span");
    
    0 讨论(0)
  • 2020-12-17 09:51

    Similar to the marked answer but looks a little cleaner using the :first selector:

    $('.counter').nextAll('span:first')
    
    0 讨论(0)
  • 2020-12-17 09:52

    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);
    
    0 讨论(0)
  • 2020-12-17 10:05

    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);
    }
    
    0 讨论(0)
提交回复
热议问题