如何使用jquery更改链接中的变量值

如何使用jquery更改链接中的变量值,jquery,Jquery,我想更改页面上所有链接中的变量值。 如果链接如下所示: <a href="http://www.mypage.com?type=iPhone&userId=1">The 1 link</a> <a href="http://www.mypage2.com?type=iPhone&userId=1">The 2 link</a> 这样一来,它根本就不会更改appType=iPhone,我不知道我缺少了什么?您可以使用查找以“iPho

我想更改页面上所有链接中的变量值。 如果链接如下所示:

<a href="http://www.mypage.com?type=iPhone&userId=1">The 1 link</a>
<a href="http://www.mypage2.com?type=iPhone&userId=1">The 2 link</a>
这样一来,它根本就不会更改appType=iPhone,我不知道我缺少了什么?

您可以使用查找以“iPhone”结尾的
href
链接,然后使用该方法更改值:

$("a[href$='iPhone']").attr("href", function () {
    return this.href.replace("iPhone", "Android");
});
这是一个例子

更新

现在,您已经更新了问题,并且URL不再以您要查找的字符串结尾,您可以使用:


还有一个。

这可以按照你想象的方式来做,但严肃地说——质疑这是否是实现你目标的最佳方式

使用jQuery,您可以使用以下命令查找元素:

*=
表示“属性包含”

然后,您可以只替换href:

$('a[href*="type=iPhone"]').attr("href",function(){
     $(this).attr('href').replace('type=iPhone','type=Android');
});
但是,你应该考虑可能有更好的方法来做到这一点。例如,如果您从
href
中删除
type=iPhone
属性,而是在用户单击链接时决定要附加哪个
type=*
,那么您就不需要做所有关于查找和替换的繁琐工作

例如,从以下HTML开始:

<a href="http://www.mypage.com?userId=1">The 1 link</a>
<a href="http://www.mypage2.com?userId=1">The 2 link</a>
使用jQuery:

$(document).on('click','a',function(e){
    e.preventDefault();
    var href = $(this).attr('href');
    window.location.href = href + '&type=' + osType;
});

这项技术的实例:

首先,给你的
标签一个
id
@ShivanRaptor为什么。。?我想这不是必需的链接是否呈现在服务器端?我误读了OP问题,没有
id
needok,谢谢。但是如果它没有结束,如果在那之后有更多的变量呢?我来改变我的问题。只需删除$,它就会找到type=iPhone?我会努力的@ClaesGustavsson-使用选择器代替。(请参阅更新我的答案)。谢谢,我已经用上述建议进行了测试,但我无法让它工作。因此,我将再次更改我的问题:-)@ClaesGustavsson-请参阅更新-我添加了一个JSFIDLE示例来演示!谢谢,但是这个例子对我不起作用?没有警报或其他任何东西。
$('a[href*="type=iPhone"]').attr("href",function(){
     $(this).attr('href').replace('type=iPhone','type=Android');
});
<a href="http://www.mypage.com?userId=1">The 1 link</a>
<a href="http://www.mypage2.com?userId=1">The 2 link</a>
var osType = 'iPhone'; // change to 'Android' if need be or dynamically - whatever!
$(document).on('click','a',function(e){
    e.preventDefault();
    var href = $(this).attr('href');
    window.location.href = href + '&type=' + osType;
});