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

如何始终获取最后一个.report元素的data-id值(支持动态添加)

解决方法:获取最后一个.report元素的data-id值

你遇到的问题很典型——jQuery的.data()方法在匹配多个元素时,默认只会返回第一个元素对应的属性值。要获取最后一个元素的data-id,只需要调整选择器,精准定位到最后一个.report元素即可。

修改后的代码

$( document ).ready(function() {
  $(window).scroll(function() {
    if ($(window).scrollTop() >= $(document).height() - $(window).height() - 200){
      // 使用:last选择器定位最后一个.report元素
      var variable = $('.report:last').data("id");
      alert(variable);
    }
  });
});

为什么这样改?

  • $('.report:last')会选中DOM中所有.report元素里的最后一个,哪怕后续动态添加了新的.report元素,每次滚动触发时都会重新查询DOM,所以总能拿到最新的最后一个元素的data-id。
  • 你也可以用.eq(-1)来实现同样的效果,写法是$('.report').eq(-1).data("id"),eq(-1)同样表示选择匹配集合中的最后一个元素,两种方式都能满足需求。

验证用的HTML示例

<li class="report" data-id="602532">Report inappropriate</li>
<li class="report" data-id="602530">Report inappropriate</li>
<li class="report" data-id="602529">Report inappropriate</li>
<li class="report" data-id="602531">Report inappropriate</li>
<li class="report" data-id="602575">Report inappropriate</li>
<li class="report" data-id="602557">Report inappropriate</li>
<li class="report" data-id="602574">Report inappropriate</li>

这样修改后,每次滚动到指定位置时,弹窗都会显示最后一个.report元素的data-id值,哪怕后续动态添加新元素也能正常获取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:42:37