【问题标题】:How to change "href" attribute of link has specific "href" using jQuery?如何使用jQuery更改链接的“href”属性具有特定的“href”?
【发布时间】:2016-10-17 16:07:01
【问题描述】:

如果一个页面有多个这样的链接:

<a href="http://www.domain.com/linka.html">Link A</a>
<a href="http://www.domain.com/linkb.html">Link B</a>
<a href="http://www.domain.com/linkc.html">Link C</a>
<a href="http://www.domain.com/linkd.html">Link D</a>

如何在页面加载时将它们全部更改为:

<a href="http://www.domain.com/folder/linka.html">Link A</a>
<a href="http://www.domain.com/folder/linkb.html">Link B</a>
<a href="http://www.domain.com/folder/linkc.html">Link C</a>
<a href="http://www.domain.com/folder/linkd.html">Link D</a>

【问题讨论】:

    标签: javascript jquery html attributes href


    【解决方案1】:

    您需要使用[name^=”value”] 选择器选择所有href 属性以“链接”开头并使用[name$=”value”] 选择器以“.html”结尾的锚标记。然后在函数中使用.attr(function)迭代被选元素并改变它们的href属性。

    $("a[href^='link'][href$='.html']").attr("href", function(i, attr){
        return "folder/" + attr;
    });
    

    $("a[href^='link'][href$='.html']").attr("href", function(i, attr){
      return "folder/" + attr;
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <a href="linka.html">Link A</a>
    <a href="linkb.html">Link B</a>
    <a href="linkc.html">Link C</a>
    <a href="linkd.html">Link D</a>

    您也可以在$(document).ready(function(){//code}) 中编写代码以在页面加载后运行。

    【讨论】:

    • 可以检查文件是否为.html
    【解决方案2】:

    $.each($("a[href^='link'][href$='.html']"),function(){
    $(this).attr("href",document.URL+"folder/"+$(this).attr("href"))
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <a href="linka.html">Link A</a>
    <a href="linkb.html">Link B</a>
    <a href="linkc.html">Link C</a>
    <a href="linkd.html">Link D</a>

    【讨论】:

    • 这会在 http:// 的开头添加 URL,从而提供无效链接。我已经更新了原帖。
    猜你喜欢
    • 2010-09-15
    • 2010-11-22
    • 2012-05-17
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 2018-03-02
    • 2018-05-15
    相关资源
    最近更新 更多