请在下面检查我这个脚本,我不知道它为什么不运行。 现在检查:
<script>
$("#categories li a").each(function() {
var hreflink = (/[^/]*$/.exec(decodeURIComponent(this.href)));
//var realhref = hreflink.replace(/\s/g, '_');
$(this).attr("href", "#" + hreflink);
});
</script>
解释:我想用"category"
替换所有链接(从链接中捕获)
例如:
我的链接如下:
<a href="http://www.stackoverflow.com/new%20link">New Link</a>
替换后我只有:
<a href="#new-link">New Link</a>
我解码url然后替换但是替换可能有问题。
感谢您的帮助。
答案 0 :(得分:1)
答案 1 :(得分:1)
尝试:
$("a").each(function(){
var href = $(this).attr("href");
href = href.replace(/%20/g,"-");
href = href.replace(/ /g,"-");
href = href.split("/").pop();
$(this).attr("href","#"+href);
});
答案 2 :(得分:1)
exec函数返回一个数组,你需要得到数组中的第一项
$("#categories li a").attr('href', function (_, href) {
var hreflink = (/[^/]*$/.exec(decodeURIComponent(href)))[0];
return hreflink.replace(/\s/g, '_');
});
演示:Fiddle