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

如何防止Ajax触发的脚本破坏jQuery的song_link数据元素?

解决思路与修改后的脚本

核心问题是脚本重复执行时,会把已改为#的href重新存入song_link,覆盖原始链接。只需添加判断:仅处理未存储过原始链接的元素。

修改后的jQuery脚本

// 只处理还没存储过原始链接的.sm2_button元素
$('a.sm2_button:not([data-song-link])').each(function() {
  var $this = $(this);
  // 把原始href存入data属性
  $this.data('song_link', $this.attr('href'));
  // 将页面上的href替换为#
  $this.attr('href', '#');
});

关键说明

  • 用:not([data-song-link])选择器过滤已处理过的元素,避免重复操作
  • 首次加载时,所有符合条件的元素都会被处理,完成链接隐藏和原始地址存储
  • Ajax调用后,仅处理新生成的未被操作过的.sm2_button元素,不会破坏已有数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 08:30:58