Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将字符串附加到<;a href=";使用jQuery还是Javascript?_Javascript_Jquery_Append - Fatal编程技术网

如何将字符串附加到<;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");
})