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

jQuery代码转换为原生JavaScript后无法运行,求错误排查

改写代码存在的错误如下
  • 方法名拼写错误:document.getElementByClassName 应为 document.getElementsByClassName,注意 Elements 是复数形式,该方法返回类数组结构的HTMLCollection集合,无法直接对整个集合绑定事件,需要遍历每个元素单独绑定。
  • 事件绑定逻辑错误:原生JS不存在 .click(回调函数) 绑定事件监听的用法,该写法是jQuery专属,原生需要调用 addEventListener('click', 回调函数) 实现点击事件绑定。
  • 属性获取方法错误:原生DOM元素没有jQuery的 .attr() 方法,获取元素id可以直接读取 .id 属性,也可以调用 .getAttribute('id') 方法实现。
  • 误用jQuery语法:代码中仍保留了jQuery专属的 $() 选择器,原生通过id获取元素应使用 document.getElementById(元素id),不需要拼接 # 前缀。
  • 自执行函数未触发:代码定义了闭包但末尾缺少执行括号 (),导致闭包内的代码永远不会运行。

正确改写后的代码
(function () {
    // 获取所有关闭按钮元素,遍历绑定点击事件
    const closeButtons = document.getElementsByClassName("afc_close_content");
    for (let btn of closeButtons) {
        btn.addEventListener('click', function() {          
            const targetId = this.closest('div').id;
            document.getElementById(targetId).style.display = "none";
        });
    }
})();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:42:03