【问题标题】:jQuery - Append hash to href from current URLjQuery - 从当前 URL 将哈希附加到 href
【发布时间】:2021-07-05 17:53:10
【问题描述】:

假设我在地址栏中有这个 URL:

www.example.com/pt.html#myhash

我还有一个链接到的锚

<a id="lang" href="https://www.example.com/en.html">Change Language</a>

我想要归档的是将 #myhash 标记附加到该锚点,但前提是它存在于当前 URL 中。如果没有,请不要附加任何内容。

【问题讨论】:

    标签: html jquery anchor url-fragment


    【解决方案1】:

    检查是否设置了window.location.hash,并且它不仅仅是'#',然后应用到锚点

    // for demo only set hash
    history.pushState(null, null, '#someVal')
    
    
    const urlHash = location.hash,
         langLink = document.querySelector('#lang');
    
    if (urlHash && urlHash !== '#') {
      langLink.hash = urlHash; 
    }
    
    console.log('New href=',langLink.href)
    &lt;a id="lang" href="https://www.example.com/en.html"&gt;Change Language&lt;/a&gt;

    【讨论】:

    • 但是如果哈希标签在同一页面上发生变化怎么办?我有几个用户可以在该页面上选择的#id。 “lang”链接没有更新。
    • 可以收听hashchange事件jsfiddle.net/swt94zf1
    猜你喜欢
    • 2013-06-07
    • 2019-06-22
    • 2015-04-17
    • 2014-08-21
    • 2015-01-27
    • 1970-01-01
    • 2019-06-22
    • 2016-04-24
    • 2014-10-03
    相关资源
    最近更新 更多