jQuery目前有.next(filter)
,.nextAll(filter)
但我需要适合这些中间的东西 - 实际上,.nextWhile(filter)
在过滤器不再为真,然后停止(而不是继续到结束)之前,它会重复执行.
为了证明这一点,以下是一些简化的HTML - (实际上,它是动态生成的,随机顺序/数据,更多列,正确的类名等).
... |
---|
a |
a1 |
a2 |
b |
c |
d |
d1 |
d2 |
d3 |
e |
f |
g |
g1 |
g2 |
对此,运行一些JavaScript:
有没有一种简单的方法来实现这个nextWhile
结构?
理想情况下,这需要在不修改当前HTML的情况下实现.
在jQuery中,您可以创建nextWhile()
等效的using nextUntil()
方法和:not
选择器.简单地说,while (condition is true) { do something }
就像说的一样until (condition is false) { do something }
.
考虑这个技巧示例,您需要选择.child
第一个之后的所有元素.parent
:
以下代码大致相当于.nextWhile(".child")
并选择了三个.child
元素:
$("#test .parent:first").nextUntil(":not(.child)");