找到左偏移量大于[重复]的第一个元素
Posted
技术标签:
【中文标题】找到左偏移量大于[重复]的第一个元素【英文标题】:find first element with left offset greater than [duplicate] 【发布时间】: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()
之外,并且将(第一个)元素放在变量中,可以随心所欲地使用它。
【参考方案1】:
您可以使用jQuery's filter function 来做到这一点
类似
var x=50;
var first=$('.card').filter(()=>
return $(this).offset().left>x;
).first();
应该给你第一个符合你要求的元素。
【讨论】:
Uncaught TypeError: r.getClientRects is not a function
您的代码中的其他地方似乎存在问题。确保检查 r
是您期望的任何对象,并且它具有 getClientRects
函数
听起来您正在使用 jQuery 3.x.x,其 jQuery UI 版本低于 1.2.0,@puerto。见this question。
我的页面上没有 jquery ui。 jquery 是 3.3.1以上是关于找到左偏移量大于[重复]的第一个元素的主要内容,如果未能解决你的问题,请参考以下文章