我正在尝试使用jQuery修改链接。这些链接是动态生成的,我无法控制现有的HREF,因为它们是从第三方网站调用的。
使用jQuery,我如何将链接从这个更改为:
example.com/?one=1&two=1
转换为:
example.com/?one=1&two=1&thisisadded=true
所以基本上是在链接的结尾添加&thisisadded=true
?
需要更改的链接位于其自己的
内,类名为
my-link
。
$('a.my-link').each(function () {
var href = $(this).attr('href');
$(this).attr('href', href + '&thisisadded=true');
});
如果我的选择器不够好,请使用一个jQuery选择器替换它,以匹配您网站上适当的链接。
var href = $(this).attr('href');
$(this).attr('href', href + '&thisisadded=true')
显然,这是在一个上下文中进行的,其中this
是您的链接
$(this)
会在回调函数中起作用,一旦您匹配了所有需要更改的链接。但是,如果您只是像这样调用代码,它不会给您期望的结果。 - RaYell只需使用您的选择器和回调函数来 attr
。这将向每个匹配的链接添加额外的部分:
$('a.my_link').attr('href', function(i, a){ return a + "&thisadded=true" });
在向 attr
方法提供回调函数时,第一个参数是 index
,第二个参数是原始的 attribute
值。从回调函数返回的任何内容都将成为新值。
注意:此功能可在 jQuery 1.1 及更高版本中使用。不要将此方法与 jQuery 1.4 中引入的新批处理方法混淆。