2013-07-19 67 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"); 
}) 
相關問題