Jquery 如何替换链接中的哈希

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时,菜单会

我想将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#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。你能把它写下来作为回答吗。很高兴知道它有帮助:)给它投一票,让它变成绿色