如何检测<a>标签及其子元素的点击以添加外链参数?
解决点击标签子元素时无法附加参数的问题
你可以用Element.closest()方法解决这个问题,它会从点击的目标元素开始向上遍历DOM树,找到第一个匹配指定选择器的元素(也就是我们需要的<a>标签)。
修改后的代码如下:
document.addEventListener('click', function (e) { // 从点击元素向上查找最近的符合条件的a标签 const targetLink = e.target.closest('a[href*="/outgoing/"]'); if (!targetLink) return; // 给找到的a标签附加参数 targetLink.href += "?this=that"; }, false);
补充说明
closest()方法能同时处理点击<a>标签本身,或是其内部任意子元素的情况,只要上层存在符合条件的<a>标签就会触发逻辑。- 原代码里混用了
event和e作为事件对象,统一使用参数e更规范,避免依赖全局变量的潜在问题。
内容的提问来源于stack exchange,提问作者pg.
相关产品推荐
相关产品推荐

