如何更改链接的“href”属性使用jQuery具有特定的“href”?

时间:2016-10-17 07:28:51

标签: javascript jquery html attributes href

如果页面有多个链接:

<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>

2 个答案:

答案 0 :(得分:3)

您需要使用[name^=”value”]选择器选择其href属性以“link”开头的所有锚标记,并使用[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})中的代码编写为在页面加载后运行。

答案 1 :(得分:0)

$.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>