Jquery 如何在mouseenter上添加链接的现有URL参数?

Jquery 如何在mouseenter上添加链接的现有URL参数?,jquery,Jquery,指向我的站点的链接包含几个URL参数,包括一个标识用户来源的参数。我们已将此URL参数命名为“r”,表示“referer” 带有此参数的链接示例如下所示: example.com/?r=google搜索&utm\u source=google 当从我网站上的一个页面链接到一个名为“退出横幅”的特定页面时,我需要在原始页面上该链接中的“r”值中添加“_exitbanner”,但不能完全替换它,因为它包含引用者 因此,在前面的示例中,从主页到退出横幅页面的链接如下所示: example.com/?r

指向我的站点的链接包含几个URL参数,包括一个标识用户来源的参数。我们已将此URL参数命名为“r”,表示“referer”

带有此参数的链接示例如下所示:

example.com/?r=google搜索&utm\u source=google

当从我网站上的一个页面链接到一个名为“退出横幅”的特定页面时,我需要在原始页面上该链接中的“r”值中添加“_exitbanner”,但不能完全替换它,因为它包含引用者

因此,在前面的示例中,从主页到退出横幅页面的链接如下所示:

example.com/?r=google-search\u exitbanner&utm\u source=google

我知道我可以将文本附加到整个URL,但不知道如何仅将文本附加到其中的特定参数

以下是我当前的jQuery:

$(document).ready(function(){
    $("a.track-click").one('mouseenter', function () {
        $("a.track-click").attr("href",function(n, v){
            return v + "_exitbanner";
        });
    });
});
以及它将产生的联系:

<a href="https://example.com/?r=google" class="track-click">https://example.com/?r=google</a>

有几种方法可以做到这一点。。假设
r
是第一个参数,并且还有其他参数出现,一种方法是使用regex模式
\?r=[^&]+
,这意味着从?r=开始,直到到达字符&将
r=xxxx
替换为
r=xxxx\u exitbanner
,如下所示

$("a.track-click").attr("href",function(n, v){
    var theMatch = v.match(/\?r=[^&]+/); //to avoid an exception.
    return v.replace(theMatch && theMatch[0], theMatch[0] + '_exitbanner')        
});

您是否正在尝试更改元素的href属性或浏览器窗口中的实际URL?v是整个URL吗?我认为如果您将其更改为v.replace(match&&theMatch[0],“?”+theMatch+'\u exitbanner'),这将是我键入时您刚刚更新的最佳答案。这是现在最好的答案。删除了我的。呵呵是的,我在看到你的帖子后更新了!谢谢你,伙计!