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

如何使用Vanilla JS禁用指定类.my-class下的所有链接?

禁用.my-class容器下所有链接的Vanilla JS实现

要实现禁用.my-class父容器内所有链接的点击功能,以下是几种实用的Vanilla JS方案,你可以根据需求选择:

方案1:阻止点击的默认跳转行为(保留href属性)

这种方法不会修改链接的href属性,但点击时会阻止默认的跳转动作,适合需要保留原href但不让用户跳转的场景:

// 选中目标容器下的所有a标签
const targetLinks = document.querySelectorAll('.my-class a');

// 遍历每个链接,绑定点击事件
targetLinks.forEach(link => {
  link.addEventListener('click', function(event) {
    event.preventDefault(); // 阻止默认跳转行为
  });
});

方案2:修改href为无效值

直接将链接的href设置为无效的JavaScript伪协议,从根源上避免跳转,同时也可以配合阻止默认事件确保彻底禁用:

const targetLinks = document.querySelectorAll('.my-class a');

targetLinks.forEach(link => {
  link.href = 'javascript:void(0)';
  // 额外添加阻止默认事件,避免特殊情况
  link.addEventListener('click', e => e.preventDefault());
});

方案3:添加禁用状态(带视觉反馈)

如果需要让链接看起来明显是禁用状态,可以给a标签添加disabled属性,再配合CSS样式实现视觉禁用效果,同时阻止点击:

JavaScript代码:

const targetLinks = document.querySelectorAll('.my-class a');

targetLinks.forEach(link => {
  link.setAttribute('disabled', 'true');
  link.addEventListener('click', e => e.preventDefault());
});

配套CSS(可选):

.my-class a[disabled] {
  pointer-events: none;
  opacity: 0.6;
  cursor: not-allowed;
}

以上方案都可以实现你需要的“链接无法被点击”的效果,根据实际场景选择即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 05:15:26