如果页面有多个链接:
<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>
答案 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>