2013-07-19 42 views
11

I've the elements as follows,如何追加字符串<a href=" with jQuery or Javascript?

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

and I want it to be changed as follows within browser.

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

So that I can use the "a" data values to next page. Can any one give me the code, which does the appends inside

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

and i wants to remove the added text with another onChange event.

Thanks in advance

回答

25
href

由于jquery被标记为:

$('#pager a').each(function(){ 
    this.href += '?a=text'; 
}) 

香草JS是这样的:

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

for(var i=0; i< length; i++){ 
    a[i].href += '?a=text'; 
} 
+2

-1为“儿童”(不,不是真的) – Blazemonger

+0

@Blazemonger你是什么意思? var名称是错误的? –

+0

@Bondye'.each'函数有什么问题? *“+ 1最后一个没有.each()函数...人们不明白.each()..”*。您发布此评论的答案,您认为在代码背后发生了什么?另外,'.each()'更快:http://jsperf.com/each-vs-function –

2

you can use attr方法

$('a').attr('href', '/somepath/1?a=text'); 

如果你想改变一个特定<a>给出的是“”一个唯一的ID不是改变其href如下

$('#link').attr('href', '/somepath/1?a=text'); 
6
$('#pager a').each(function() { 
    $(this).attr('href', $(this).attr('href') + '?a=text'); 
}); 
+0

感谢,更新了问题 – user9371102

5

只需使用attr property。例如: -

$("a").attr("href", "http://www.google.com/") 

这将完成这项工作。

12

.attr(),像很多jQuery的功能,可以采取一个函数的参数是修改现有的值:

$('#pager a').attr('href',function(i,str) { 
    return str + '?a=text'; 
}); 
+0

我喜欢这个+1 –

+0

@Blazemonger谢谢,我我会接受卡尔 - 安德烈·加格农的回答。你有哇,以及如何删除与另一个onChange事件添加文本“?a = text”? – user9371102

+0

“return str.split('?')[0];”应该这样做。 – Blazemonger

2

试试这个代码:

$('#pager a').each(function(){ 
    this.href += '?a=text' 
}) 
3
$("#pager").find("a").each(function(){ 
var $this=$(this); 
$this.attr("href",$this.attr("href")+"?a=text"); 
}) 
相关问题