【问题标题】:jquery strip href path (but keep hash value)jquery strip href 路径(但保留哈希值)
【发布时间】:2016-04-07 12:10:32
【问题描述】:

我正在更新这个超级古老的医疗网站,并试图找出一种方法来处理数百个 href,每个 href 都有一个文档和一个 #hash 值,就像这样......

<a href="mind.html#cretinism" target="_top">CRETINISM</a>
<a href="brain.html#delirium" target="_top">DELIRIUM</a>
<a href="body-mind.html#dementia" target="_top">DEMENTIA</a>
<a href="body.html#emotions" target="_top">EMOTIONS</a>
<a href="chem.html#fears" target="_top">FEARS</a>

我正在尝试做的是保留哈希值,并摆脱文档,请参阅。因此,我想最终是这样的:

<a href="#cretinism" target="_top">CRETINISM</a>
<a href="#delirium" target="_top">DELIRIUM</a>
<a href="#dementia" target="_top">DEMENTIA</a>
<a href="#emotions" target="_top">EMOTIONS</a>
<a href="#fears" target="_top">FEARS</a>

或者,可选地,使其 onclick 忽略文档并仅响应哈希值。如,

// pseudo code, obviously
$(document).on('click', 'a', function(e){ 
    e.preventDefault();
    $(this).attr('href').sliceOffEveryCharBeforeThe('#');
});

哇哦。

【问题讨论】:

    标签: jquery hash


    【解决方案1】:

    这对于 jQuery 来说是相当简单的,尽管最好的解决方案是尽可能在服务器上进行调整。

    // loop through all "a" in page  
    $('a').attr('href', function(_, oldHref){
        // if it has a hash use that, if not use old href
        return this.hash ? this.hash : oldHref;
    });
    

    DEMO

    【讨论】:

    • 非常感谢;我接受了这个答案,因为它看起来比另一个更简单,这也有效。
    • 我认为最好在页面本身中进行操作...然后可以根据需要复制链接
    【解决方案2】:

    我的建议是:

    $(document).on('click', 'a', function(e){
      e.preventDefault();
      var obj = $(this);
      var newvalue = obj.attr('href').replace(/[^#]*/, '');
      obj.attr('href', newvalue);
      $('#result').text(this.outerHTML);
    });
    <script src="http://code.jquery.com/jquery-1.11.3.js"></script>
    
    <a href="mind.html#cretinism" target="_top">CRETINISM</a>
    <a href="brain.html#delirium" target="_top">DELIRIUM</a>
    <a href="body-mind.html#dementia" target="_top">DEMENTIA</a>
    <a href="body.html#emotions" target="_top">EMOTIONS</a>
    <a href="chem.html#fears" target="_top">FEARS</a>
    
    <p id="result"></p>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-22
      • 2015-05-10
      • 1970-01-01
      • 2015-09-07
      • 2013-04-24
      • 1970-01-01
      • 2020-10-09
      • 1970-01-01
      相关资源
      最近更新 更多