【发布时间】:2019-05-26 04:20:04
【问题描述】:
嘿嘿,
所以我得到了一个script,它将正常的anchor href's 变成id hrefs(例如:/10001-Link1 到#Link1)。现在,只要您为要转换为id link 的每个anchor link 重复代码,它就可以正常工作。但我想让它不那么静态。因此,脚本应该自动从当前的 anchor href 中获取正确的单词,而不是为每个 anchor link 重复代码,并且只需将单词替换为 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 部分的所有/ 和\ 的作用和含义。也许这根本不是解决我问题的正确方法?
【问题讨论】:
标签: javascript jquery