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

jQuery如何实现URL多关键词OR匹配检测并隐藏指定元素

问题根因

String.indexOf() 方法本身不支持传入多个关键词实现多匹配,该方法的第二个参数是查找操作的起始位置,而非第二个待匹配关键词,因此你原有代码的逻辑完全不符合预期,无法实现多关键词OR匹配效果。

修复方案

以下是可直接复用的多关键词OR匹配实现,后续新增匹配关键词仅需修改关键词数组即可:

jQuery( document ).ready(function() {
  // 所有待匹配的关键词统一放在该数组中,新增关键词直接追加元素即可
  const matchKeywords = ['term1', 'term2'];
  // 检测URL是否包含任意一个关键词,匹配到任意一项即返回true
  const urlHasKeyword = matchKeywords.some(item => window.location.href.includes(item));

  // 原逻辑:未匹配到任意关键词时隐藏元素
  if (!urlHasKeyword) {
    document.getElementById("element").style.display = "none";
  }

  // 若你需要改为「匹配到任意关键词就隐藏元素」,替换上面的判断为以下代码即可
  // if (urlHasKeyword) {
  //   document.getElementById("element").style.display = "none";
  // }
});
可选优化项
  • 若需要实现大小写不敏感的匹配,把匹配逻辑改为window.location.href.toLowerCase().includes(item.toLowerCase())即可
  • 如果你需要兼容非常老旧的浏览器(不支持ES6语法),可以用for循环实现相同逻辑,示例如下:
jQuery( document ).ready(function() {
  const matchKeywords = ['term1', 'term2'];
  let urlHasKeyword = false;
  for (let i = 0; i < matchKeywords.length; i++) {
    if (window.location.href.indexOf(matchKeywords[i]) > -1) {
      urlHasKeyword = true;
      break;
    }
  }
  if (!urlHasKeyword) {
    document.getElementById("element").style.display = "none";
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:45:02