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

如何不通过事件触发执行JS函数 让使用this的折扣方法页面加载自动运行

解决方案

你不需要修改原有discount函数的逻辑,只要在页面DOM加载完成后,获取所有需要计算折扣的.seen元素,逐个传入discount函数执行即可实现自动计算:

把以下代码添加到你现有JS代码的末尾即可:

document.addEventListener('DOMContentLoaded', function() {
  // 选中所有.seen元素
  document.querySelectorAll('.seen').forEach(function(seenEl) {
    // 跳过已单独处理的第一个带TotalPrice1的元素,也可以结合优化方案全量适配
    if (seenEl.querySelector('.TotalPrice')) {
      discount(seenEl);
    }
  });
});

可选优化:合并冗余逻辑

你现有的两个折扣计算函数逻辑完全重复,完全可以合并为一个通用函数,适配任意数量的折扣模块,无需维护多套代码,也不需要额外绑定点击事件:

// 通用印度卢比价格格式化方法
const parseRupee = (priceStr) => Number(priceStr.replace(/₹|,/gi, ''));

// 通用折扣计算函数
function calcDiscount(seenEl) {
  const total = parseRupee(seenEl.querySelector('[class^="TotalPrice"]').innerHTML);
  const disc = parseRupee(seenEl.querySelector('[class^="DiscPrice"]').innerHTML);
  const discountPercent = ((total - disc) / total) * 100;
  seenEl.querySelector('[class^="demo"]').innerHTML = discountPercent.toFixed(0) + "% off";
}

// 页面加载完成后自动计算所有模块折扣
document.addEventListener('DOMContentLoaded', () => {
  document.querySelectorAll('.seen').forEach(calcDiscount);
});

替换掉你原有写的discount1、discount两个函数和对应的调用代码即可,后续新增同类折扣模块只要按现有HTML结构编写,不用写额外JS就能自动计算折扣。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:21:03