首页 > 解决方案 > 从 href 锚点中删除最后一个正斜杠

问题描述

我有以下锚点情况:

<a href="https://example.com/my-account/#example/" class="anchor">...</a>

由于#链接的斜线,上面的锚给了我一个 jQuery 冲突。因为这是 PHP 生成的,所以我正在寻找一个jQuery Javascript 解决方案来删除href这个锚点的最后一个字符。我怎么做?

这个 jquery 冲突的原因是,因为我网站上的 #-links 是并且应该是滚动到 ID 属性。所以它滚动到 id 元素。这是一项我无法更改其构建方式的功能,因此我看到的唯一解决方案是/从锚点中删除最后一个。

标签: jqueryanchorhref

解决方案


由于#-link 的斜线,上面的锚给了我一个 jQuery 冲突

我建议您应该解决该冲突,因为/在 URL 的片段中包含 a 本身并没有错。如果它对您造成错误,那么您需要修复您的逻辑。

话虽这么说,可以通过传递一个函数来执行您需要的操作,该函数prop()使用正则表达式删除任何尾随斜杠:

$('.anchor').prop('href', function(i, href) {
  return href.replace(/\/$/, '');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<a href="https://example.com/my-account/#example/" class="anchor">...</a>


推荐阅读