Jquery 如何替换链接中的哈希
我想将url的哈希添加到导航的href属性:Jquery 如何替换链接中的哈希,jquery,fragment-identifier,Jquery,Fragment Identifier,我想将url的哈希添加到导航的href属性: <ul> <li><a href="/bla">Bla</a></li> <li><a href="/bli">Bli</a></li> <li ><a href="/blu">Blu</a></li> </ul> 现在,当我单击一个子菜单或用散列手工输入url时,菜单会
<ul>
<li><a href="/bla">Bla</a></li>
<li><a href="/bli">Bli</a></li>
<li ><a href="/blu">Blu</a></li>
</ul>
现在,当我单击一个子菜单或用散列手工输入url时,菜单会更新如下:
<ul>
<li><a href="/bla#hashVlaue">Bla</a></li>
<li><a href="/bli#hashVlaue">Bli</a></li>
<li ><a href="/blu#hashVlaue">Blu</a></li>
</ul>
<a href="/blu#hashOne#hashTwo#Three#Four">Blu</a>
这是有效的。但是现在,如果我再次单击子菜单,哈希将被追加而不是替换。由于单击子菜单时不会重新加载页面,因此链接开始如下所示:
<ul>
<li><a href="/bla#hashVlaue">Bla</a></li>
<li><a href="/bli#hashVlaue">Bli</a></li>
<li ><a href="/blu#hashVlaue">Blu</a></li>
</ul>
<a href="/blu#hashOne#hashTwo#Three#Four">Blu</a>
我只想要一个散列,如果已经有一个散列,它应该被替换。我该怎么做?您总是在代码中附加
href
。检查hashchange
回调中的行href+window.location.hash
。这就是为什么它总是附加到前面的值。你需要的是
return href.split("#")[0] + window.location.hash
干杯:)我不知道我是否完全理解你的问题。但是这就是你需要的,我猜
return href.split(“#”)[0]+window.location.hash
替换你return href+window.location.hash
行中的haschange
触发到上面的jup,就是这样:D gosh。你能把它写下来作为回答吗。很高兴知道它有帮助:)给它投一票,让它变成绿色