我需要选择所有本地链接,无论是否以
开头/path/to/page
http://mydomain.com/path/to/page
https://mydomain.com/path/to/page
并用
替换它们/#/path/to/page
感谢您的帮助。
编辑:正如dvhh在评论中所指出的,更好的解决方案是定位点击次数。很抱歉,我不会测试解决方案来标记正确的答案。谢谢你的帮助
编辑2:发布new question关于通过点击进行此操作。
答案 0 :(得分:2)
你应该可以这样做:
$('a').each(function() {
if ( this.host === 'mydomain.com' || this.getAttribute('href').indexOf('/') === 0) {
this.href = "/#" + this.pathname;
}
});
检查href.host
是否与domain.com
匹配,或href
的第一个字符是/
,如果是,则设置href
到/#
加上href
的当前路径名部分。
我正在使用原生getAttribute()
因为我认为在获取设置的实际原始属性方面最安全。也许它不会有所作为。
答案 1 :(得分:1)
这应该选择所有锚标签。
$("a[href*='https://mydomain.com/path/to/page'] a[href*='/path/to/page'] a[href*='http://mydomain.com/path/to/page']")
这应该替换所有的hrefs
$("a[href*='https://mydomain.com/path/to/page'] a[href*='/path/to/page'] a[href*='http://mydomain.com/path/to/page']").each(function () {
var $this = $(this);
var currentHref = $this.attr('href');
$this.attr("href","#/" + currentHref.substring(currentHref.indexOF("/path/to/page"), currentHref.length - 1));
})
答案 2 :(得分:1)
你要求的
$("a").each(
function(index,element) {
if(element.href.indexOf("https://mydomain.com/")==0) {
$("a").attr("href",element.href.replace("https://mydomain.com/","/#/"));
}
}
}
答案 3 :(得分:0)
非常简单
$(function () {
$('a').each(function () {
$(this).attr('href', '/#' + pathname);
});
});