我想修改使用jQuery的链接。链接是动态生成的,我无法控制现有的HREF,因为它们是从第三方网站调用的。jQuery:将文本添加到现有的动态HREF
使用jQuery,我怎么可以改变此链接:
example.com/?one=1&two=1
这样:
example.com/?one=1&two=1&thisisadded=true
所以实质上增加&thisisadded=true
到链接的结束?
需要改变的链接在他们自己的div中,其类别为my-link
。
我想修改使用jQuery的链接。链接是动态生成的,我无法控制现有的HREF,因为它们是从第三方网站调用的。jQuery:将文本添加到现有的动态HREF
使用jQuery,我怎么可以改变此链接:
example.com/?one=1&two=1
这样:
example.com/?one=1&two=1&thisisadded=true
所以实质上增加&thisisadded=true
到链接的结束?
需要改变的链接在他们自己的div中,其类别为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 2010-02-12 14:46:09
是的,这就是我所说的,你应该在这种情况下,这可以用在任何事件上,不是吗? – 2010-02-12 14:54:20
只需使用你的选择,和一个回调函数来attr
。这将额外的部件添加到每一个匹配的链接:
$('a.my_link').attr('href', function(i, a){ return a + "&thisadded=true" });
当提供回调到attr
方法中,第一参数是index
和第二参数是原始attribute
值。无论从回调中返回什么都会成为新的价值。
注意:此功能在jQuery 1.1和更高版本中可用。不要将此方法与接受jQuery 1.4中引入的回调的新批处理方法混淆。
谢谢你的快速回答! 这对我有用,并正确添加了“&thisisadded = true”文本。 是否可以从链接中去除参数(“&preview = 1&TB_iframe = true”)? 我打开新标签中的链接,我不想/需要它们。 非常感谢, 詹姆斯 – James 2010-02-12 15:51:48
我认为你应该接受这是正确的答案。 ;) – catandmouse 2011-09-15 07:28:07