我想在类计数器之后找到第一个span元素,代码如下:
<div class="counter"></div>
<p></p>
<span></span>
看起来next()函数只找到下一个元素,所以像这样:
$(".counter").next("span")
不行。我一直在使用的方式有点冗长,我想知道是否有更短的方式,就是这样:
$(".counter").nextAll("span").eq(0)
我认为jQuery 3中的closest()
方法可以解决问题,但我使用的是1.2.6 - 是否有更好的方法(我只是使用next()
错误?)
答案 0 :(得分:17)
与标记的答案类似,但使用:first selector:
看起来更干净$('.counter').nextAll('span:first')
答案 1 :(得分:8)
我认为你的方法是最好的方法。如果你觉得它看起来不太好就把它变成一个插件:
jQuery.fn.firstAfter = function(filter){
return this.nextAll(filter).eq(0);
}
答案 2 :(得分:3)
我认为siblings()
功能正是您所寻找的。尝试这样的事情:
$(".counter").siblings("span");
答案 3 :(得分:1)
我不确定最接近的方法是否可行,但如果是这样的话...也许你可以从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);
答案 4 :(得分:0)
尝试这样的事情:
$(".counter ~ span:first");
希望有所帮助!
答案 5 :(得分:0)
$(“。counter + span”)