javascript - 使用 jQuery 从 href 获取 Word

标签 javascript jquery

嘿哟,

所以我得到了一个脚本,它将正常的anchor href's转换为id href(例如:/10001-Link1#Link1)。现在,只要您为要转换为 id 链接 的每个 anchor 链接重复该代码,就可以正常工作。但我想让它不那么静态。因此,脚本不应为每个 anchor 链接重复代码,而是应自动从当前anchor href中获取正确的单词,然后用其余的单词替换该单词。 url 并在其前面放置一个 #

所以这里的代码仅适用于第一个 URL:

$(document).ready(function() {
	$('li a').each(function(){ 
		var oldUrl = $(this).attr("href");
		var newUrl = oldUrl.replace("/10001-Link1", "#Link1");
		$(this).attr("href", newUrl);
	});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li><a href="/10001-Link1">Link 1</a></li>
  <li><a href="/10002-Link2">Link 2</a></li>
  <li><a href="/10003-Link3">Link 3</a></li>
  <li><a href="/10004-Link4">Link 4</a></li>
  <li><a href="/10005-Link5">Link 5</a></li>
</ul>

现在我已经找到了这个问题的解决方案。但我唯一发现的是一行我无法真正理解的代码。

$('a[href^="http://stackoverflow.com"]')
   .each(function()
   { 
      this.href = this.href.replace(/^http:\/\/beta\.stackoverflow\.com/, 
         'http://stackoverflow.com');
   });

我得到的第一部分是每个以 http://stackoverflow.com 开头的 href正在获取 .each 函数。但我不知道 .replace 部分的所有 /\ 的作用和含义。也许这根本不是解决我的问题的正确解决方案?

最佳答案

您可以使用正则表达式来实现此目的。

.replace(/\/[0-9]{5}-/, ""); 将正则表达式匹配替换为空字符串。只需在其前面添加一个 # 即可获得所需的结果。

正则表达式的工作原理如下:

  • \/ 查找 /(需要转义)。

  • [0-9]{5} 查找 5 个数字。

  • - 寻找(你永远不会相信)-

$(document).ready(function() {
	$('li a').each(function(){ 
		var oldUrl = $(this).attr("href");
		var newUrl = "#" + oldUrl.replace(/\/[0-9]{5}-/, "");
		$(this).attr("href", newUrl);
	});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li><a href="/10001-Link1">Link 1</a></li>
  <li><a href="/10002-Link2">Link 2</a></li>
  <li><a href="/10003-Link3">Link 3</a></li>
  <li><a href="/10004-Link4">Link 4</a></li>
  <li><a href="/10005-Link5">Link 5</a></li>
</ul>

关于javascript - 使用 jQuery 从 href 获取 Word,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53956862/

相关文章:

javascript - 如何在谷歌地图API中设置起点和终点标记

javascript - 想要根据下拉框选择显示/隐藏多个div

javascript - 如何一次打开所有 Bootstrap Accordion 选项卡

javascript - 可选上传字段 javascript

jquery - 在 fancybox transitionOut 上重新加载父页面

php - 确定用户输入包含 URL

javascript - 使用 javascript 在可克隆表单文本字段中插入值

javascript - 在 wordpress 中显示/隐藏子菜单

javascript - 音频持续时间返回 NaN

javascript - 尝试使用 Javascript 解决对称差异