如何将字符串附加到<;a href=";使用jQuery还是Javascript?
我有如下元素:如何将字符串附加到<;a href=";使用jQuery还是Javascript?,javascript,jquery,append,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="/s
<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>
我希望在浏览器中对其进行如下更改
<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>
这样我就可以使用“a”数据值到下一页。
有人能给我代码吗?里面的附录是什么
div id=“pager”
->->href=“
我想用另一个onChange事件删除添加的文本
提前感谢您可以使用
如果要更改特定
的href
,请为该“”指定一个唯一的id,然后按如下所示更改其href
$('#link').attr('href', '/somepath/1?a=text');
由于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';
}
var a=document.getElementById('pager').getElementsByTagName('a'),
长度=a.长度;
对于(变量i=0;i
只需使用attr属性即可。示例:-
$("a").attr("href", "http://www.google.com/")
这将完成这项工作。与许多jQuery函数一样,可以采用修改现有值的函数参数:
$('#pager a').attr('href',function(i,str) {
return str + '?a=text';
});
请尝试以下代码:
$('#pager a').each(function(){
this.href += '?a=text'
})
@Bondye。每个函数都有什么问题?+1最后一个没有。每个()函数。。。人们不明白。each()..。你在哪里发表评论的答案,你认为代码背后会发生什么?还有,。each()
更快:@Karl AndréGagnon个人认为,我更喜欢将.attr()
与函数一起使用,而不是。each()
因为我觉得它更具可读性。但我当然不能反对性能测试。(我想知道jQuery中的一些优化是否可以解决这个问题?@Blazemonger这是个人的首选,因为我更喜欢使用.each()
,因此我们不能对此进行论证:)@Bondye它没有循环两次,实际上它与使用函数(如Blaze的答案)的结果是相同的。这里是jquery代码中的相关部分:for(;i
。每种方式都是一个附加函数调用(这就是为什么每种方式都更快)。我认为您的注释对于像。addClass()
这样的函数更为相关,它对于循环元素和调用它是无用的after@Blazemonger另一方面,香草js是最慢的。你知道为什么吗(我可能在代码中做错了什么)@Karl AndréGagnon可能与@Blazemonger有关谢谢,我会接受Karl AndréGagnon的回答。您有wow ans以及如何删除添加的文本?a=text“和另一个onChange事件?”return str.split(“?”)[0];“应该这样做。@Blazemonger谢谢,:)谢谢,更新了问题
$('#pager a').attr('href',function(i,str) {
return str + '?a=text';
});
$('#pager a').each(function(){
this.href += '?a=text'
})
$("#pager").find("a").each(function(){
var $this=$(this);
$this.attr("href",$this.attr("href")+"?a=text");
})