【发布时间】:2019-01-02 18:07:50
【问题描述】:
var x = 50;
我需要选择offset().left大于x的第一个card
$('.card').each(function(){
if ($(this).offset().left > x) {...}
});
那么如何将上面的内容减少到第一个匹配的元素呢?
【问题讨论】:
-
@VinitDivekar 它有什么不同?他们希望在每个循环中将第一个元素与 offset().left > x 匹配——当他们发现条件匹配时,他们只需要中断循环
-
@chevybow,不,它不是重复的。再次阅读目标链接,尤其是问题说明和最后答案
-
在你的
if中,你可以对第一个元素和return false;做任何你想做的事情,这将退出.each()。这是重复的。 -
@AndreiGheorghiu,不,试试你会看到
-
如果你想要一个返回元素的表达式,然后你可以用它做任何事情,你可以使用
filter()。each()不返回集合(或其任何成员)。它不返回任何东西。它只是在集合上运行代码。但是您仍然可以使用each()来达到您的目的。在each()之外定义一个变量。在each()中,您将元素放在变量中,return false;现在在each()之外,并且将(第一个)元素放在变量中,可以随心所欲地使用它。
标签: jquery