如何在jQuery中从当前元素开始选择下一个“n”个元素?

50

如何从当前元素开始选择接下来的“n”个元素?我的意思是...

 $(this).attr(...);

我想要做这件事情 "n" 次。以 n=4 的例子为例:

$(this).attr(...);
$(this).next().attr(...);
$(this).next().next().attr(...);
$(this).next().next().next().attr(...);

或者使用循环来完成:

for (i = 0; i < n; i++) {
    $(this).next().attr(...);
}

我该如何做到这一点?是否有一种方法可以选择接下来的“n”个元素或使用循环来实现?


6
为什么会被踩?这写得很好,而且这是一个常见的问题。 - Stefan Kendall
1
同意。两个踩和没有解释。踩的人应该留下原因。对我来说,这似乎是一个完全合理的问题。 - user113716
3个回答

71
这应该可以工作:
$(this).nextAll().slice(0,4).attr(…)

更新:

这也可以起作用:

$(this).nextAll("*:lt(4)").attr(…)

在slice()中的'0'应该是$(this)吗? - Hristo
不行,因为在调用 .nextAll() 之前,它并不包含元素本身。 - jigfox
8
@Hristo - 如果你也需要原始代码,你可以调用 $(this).nextAll().andSelf()... - user113716
@jigfox... .slice() 方法的参数是包含还是不包含? - Hristo
@Hristo:第一个参数包含,第二个参数不包含。 - jigfox

10

nextAll方法 选择元素后面的同级元素,可根据选择器进行筛选。您可以使用 slice 来限制结果数量。


0

$(this).slice(start_index, end_index) 会选择你所选部分。你可以在循环中跟踪当前索引,然后在满足条件时在原始集合上应用 .slice(cur_index, cur_index+n) 函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接