You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

循环中获取.each()遍历元素的offset()坐标报错如何解决?

错误原因

$('.coa-content h2')返回的是jQuery元素集合,通过[i]下标取出的元素是原生DOM对象,而offset()是jQuery专属的实例方法,仅能在jQuery包装对象上调用,原生DOM对象不存在该方法,因此触发类型错误。

解决方法

你可以选择任意一种方案修改代码:

  • 在each回调中直接使用$(this)获取当前遍历的jQuery元素对象:
var blogHeaders = $('.coa-content h2');
$(window).scroll(function() {
    blogHeaders.each(function() {
        console.log($(this).offset().top);
    });
})
  • 若需要通过下标访问元素,将取出的原生DOM对象用$()包装为jQuery对象后再调用offset():
console.log($(blogHeaders[i]).offset().top);

优化建议

scroll事件触发频率极高,频繁执行遍历逻辑可能造成性能损耗,建议添加节流函数限制执行频率,提升页面流畅度。


内容的提问来源于stack exchange,提问作者user5481714

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:45:04