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

如何在无参数或ch参数为空时隐藏指定div?

解决URL无参数或ch参数为空时隐藏指定div的问题

你的原代码只处理了location.search === "?ch="这一种情况,但没有覆盖URL完全没有查询参数(即location.search为空字符串)的场景,所以才会出现不符合预期的问题。

推荐使用现代浏览器支持的URLSearchParams API来更精准地处理URL参数,它能帮你轻松获取ch参数的值,不用自己手动解析字符串:

// 获取URL的查询参数对象
const params = new URLSearchParams(location.search);
// 获取ch参数的值:无此参数返回null,参数为空返回空字符串
const chValue = params.get('ch');

// 当ch参数不存在或值为空时,隐藏目标div;否则显示
if (!chValue) {
  $('#hideNoParam').hide();
} else {
  $('#hideNoParam').show();
}

为什么这个方案更可靠?

  • 覆盖所有目标场景:!chValue会同时匹配两种需要隐藏的情况:
    • URL无任何参数(chValue为null)
    • ch参数存在但值为空(chValue为"")
  • 兼容性强:URLSearchParams已经被所有现代浏览器支持,包括Chrome、Firefox、Edge等,无需担心兼容问题。
  • 可扩展性好:就算以后URL新增其他参数(比如?ch=&foo=test),代码依然能正确判断ch的状态,不会因为额外参数失效。

如果你需要兼容非常老旧的浏览器(比如IE),可以用手动解析的方式作为备选:

function getUrlParam(name) {
  const regex = new RegExp(`[?&]${name}(=([^&#]*)|&|#|$)`);
  const results = regex.exec(location.search);
  if (!results) return null;
  if (!results[2]) return '';
  return decodeURIComponent(results[2].replace(/\+/g, ' '));
}

const chValue = getUrlParam('ch');
if (!chValue) {
  $('#hideNoParam').hide();
} else {
  $('#hideNoParam').show();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:27:24