如何检测菜单链接域名后首个斜杠后直接为#哈希值?
解决方案
要检测域名后首个斜杠直接跟哈希值的链接,推荐用原生URL对象解析链接,比直接操作字符串更可靠,能规避域名带端口、子域名等特殊场景的判断误差。
修改后的代码如下:
$('#menu a').click(function() { var target = new URL(this.href); // 检测路径是否以 "/#" 开头 if (target.pathname.startsWith('/#')) { // 在这里执行你需要的操作 console.log('符合条件的链接:', this.href); } });
补充说明
URL对象会自动拆分完整链接的各个部分,pathname属性对应域名后的路径内容(比如mywebsite.com/#find的pathname就是/#find)。startsWith('/#')直接判断路径开头是否匹配目标格式,精准筛选你需要的链接类型。- 如果要兼容不支持
startsWith的老旧浏览器,可以用字符串索引判断替代:if (target.pathname.length >= 2 && target.pathname[0] === '/' && target.pathname[1] === '#') { // 执行操作 }
内容的提问来源于stack exchange,提问作者LBF
相关产品推荐
相关产品推荐

