jQuery - 如何仅从链接中替换特定部分

时间:2016-05-23 11:26:12

标签: javascript jquery

我有很多链接,例如以下代码:

<a class="changelink" href="SignForEvent.php?id=1&page=1>Click Here</a>
<a class="changelink" href="SignForEvent.php?id=2&page=1>Click Here</a>
<a class="changelink" href="SignForEvent.php?id=3&page=1>Click Here</a>
<a class="changelink" href="SignForEvent.php?id=4&page=2>Click Here</a>
<a class="changelink" href="SignForEvent.php?id=5&page=2>Click Here</a>
<a class="changelink" href="SignForEvent.php?id=6&page=2>Click Here</a>

如何使用jQuery我只能将&page=参数更改为例如&#39; 10&#39;。

在我的问题的其他版本中,如何在page=之前保存链接的所有结构并仅更改此参数?

提前致谢!

3 个答案:

答案 0 :(得分:1)

只需使用$().each迭代元素并使用.replace()和正则表达式:

var newPage = 10;
$(function(){
  $(".changelink").each(function(){
    var link = $(this).attr("href");
    var currentPage = link.match(/page=([\d]+)/)[1];
    $(this).attr("href", link.replace("page=" + currentPage, "page=" + newPage))
  })
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a class="changelink" href="SignForEvent.php?id=1&page=2">Click Here</a>
<a class="changelink" href="SignForEvent.php?id=2&page=2">Click Here</a>

答案 1 :(得分:1)

您可以使用replace方法将目标字符更改为其他字符

$("a.changelink").each(function(){
    var href = $(this).attr("href").replace(/&page=[\d]+/, "&page=10");
    $(this).attr("href", href);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class="changelink" href="SignForEvent.php?id=1&page=1">Click Here</a>
<a class="changelink" href="SignForEvent.php?id=2&page=1">Click Here</a>
<a class="changelink" href="SignForEvent.php?id=3&page=1">Click Here</a>
<a class="changelink" href="SignForEvent.php?id=4&page=2">Click Here</a>
<a class="changelink" href="SignForEvent.php?id=5&page=2">Click Here</a>
<a class="changelink" href="SignForEvent.php?id=6&page=2">Click Here</a>

答案 2 :(得分:0)

$('changelink').attr("href",lnk.replace('SignForEvent','textThatWillReplaceSignForEvent'));