如何使用jQuery或Javascript将字符串附加到<a href ="?

use*_*102 13 javascript jquery append

我的元素如下,

<div id="pager">
<a href="/somepath/1">First</a>
<a href="/somepath/1">Previous</a>
<a class="" href="/somepath/1">1</a>
<a class="Current" href="/somepath/2">2</a>
<a class="" href="/somepath/3">3</a>
<a href="/somepath/3">Next</a>
<a href="/somepath/20">Last</a>
</div>
Run Code Online (Sandbox Code Playgroud)

我希望它在浏览器中更改如下.

<div id="pager">
<a href="/somepath/1?a=text">First</a>
<a href="/somepath/1?a=text">Previous</a>
<a class="" href="/somepath/1?a=text">1</a>
<a class="Current" href="/somepath/2?a=text">2</a>
<a class="" href="/somepath/3?a=text">3</a>
<a href="/somepath/3?a=text">Next</a>
<a href="/somepath/20?a=text">Last</a>
</div>
Run Code Online (Sandbox Code Playgroud)

这样我就可以将"a"数据值用于下一页.任何人都可以给我代码,它会附加到内部

div id="pager"- > <a>- >href="

我想用另一个onChange事件删除添加的文本.

提前致谢

Kar*_*non 30

由于jquery被标记:

$('#pager a').each(function(){
     this.href += '?a=text';
})
Run Code Online (Sandbox Code Playgroud)

Vanilla JS看起来像这样:

var a = document.getElementById('pager').getElementsByTagName('a'),
    length = a.length;

for(var i=0; i< length; i++){
    a[i].href += '?a=text';
}
Run Code Online (Sandbox Code Playgroud)

  • -1为"儿童"(不,不是真的) (2认同)
  • @Blazemonger嗯,这是一个个人偏好,因为我更喜欢使用`.each()`,所以我们不能讨论:) @Bondye它没有循环两次,它实际上与使用函数(如Blaze的答案)相同.这里是jquery代码中的重要部分:`for(; i <length; i ++){fn(elems [i],key,raw?value:value.call(elems [i],i,fn(elems [i],关键))); }.唯一添加到`.each`方式的是一个额外的函数调用(这就是为什么每个都更快).我认为你的评论对于像`.addClass()这样的函数来说更具有吸引力.这对于遍历元素并在之后调用它是没有用的 (2认同)

Bla*_*ger 13

.attr()和许多jQuery函数一样,可以使用一个修改现有值的函数参数:

$('#pager a').attr('href',function(i,str) {
   return str + '?a=text';
});
Run Code Online (Sandbox Code Playgroud)


Bar*_*klı 6

$('#pager a').each(function() {
   $(this).attr('href', $(this).attr('href') + '?a=text');
});
Run Code Online (Sandbox Code Playgroud)


Aam*_*hah 5

只需使用attr property.示例: -

$("a").attr("href", "http://www.google.com/")
Run Code Online (Sandbox Code Playgroud)

这将完成这项工作.