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

如何使用jQuery为全站特定链接的rel属性追加额外值

问题排查

你的原有代码存在三个核心问题:

  • 未遍历所有链接:仅读取页面第一个<a>标签的href属性做判断,且判断通过后会直接修改所有<a>标签的rel属性,所有链接都会被统一赋值,逻辑不符合需求。
  • href拆分逻辑不可靠:手动拆分href字符串的方式无法适配无协议前缀的相对路径链接(比如你代码里的href="example.com"),会导致取值报错、判断失效。
  • 缺少example.com的处理逻辑:仅写了amzn.to的判断分支,没有实现第二个需求的相关逻辑。
实现代码

将你的JS逻辑替换为以下代码即可实现需求:

jQuery(document).ready(function() {
  // 遍历所有a标签
  jQuery('a').each(function() {
    const link = jQuery(this);
    // 优先用原生hostname属性获取域名,兼容各种href格式
    const domain = this.hostname;
    // 处理amzn.to链接
    if (domain === 'amzn.to') {
      link.attr('rel', 'nofollow sponsored');
    }
    // 处理example.com链接,兼容相对路径写法
    if (domain === 'example.com' || link.attr('href') === 'example.com') {
      link.attr('rel', 'follow');
    }
  });
});

以上代码做了针对性优化:调用each方法遍历页面所有链接,每个链接单独判断单独赋值,不会互相干扰;直接用DOM原生的hostname属性获取链接域名,兼容带协议、不带协议、带路径的各种href写法,不需要手动拆分字符串;同时覆盖两种域名的处理逻辑,包裹在document.ready回调中避免DOM未加载完成就执行逻辑的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:39:05