当前位置 : 主页 > 网页制作 > JQuery >

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

来源:互联网 收集:自由互联 发布时间:2021-06-15
我想更改页面上所有链接中的变量值. 如果链接如下所示: a href="http://www.mypage.com?type=iPhoneuserId=1"The 1 link/aa href="http://www.mypage2.com?type=iPhoneuserId=1"The 2 link/a 我想将type = iPhone更改为type
我想更改页面上所有链接中的变量值.
如果链接如下所示:

<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>

我想将type = iPhone更改为type = Android.但我不知道如何找到类型= iPhone所以我可以替换它?

这样做的最佳方式是什么?
谢谢.

好的,这是我的真实代码.

我想要做的是检查用户代理并更改appType = iPhone,如果它是一个Android.

var ua = navigator.userAgent;
    if (ua.indexOf("Android") >= 0) {
        var androidversion = parseFloat(ua.slice(ua.indexOf("Android") + 8));
        if (androidversion < 4.0) {
           alert("You have an old Android");

        }
        var apptype='appType=Android';
        alert(apptype);

        $("a[href*='appType=iPhone']").attr("href", function () {
        return this.href.replace("appType=iPhone", "appType=Android");
        });
    }
    else
    {   
        var apptype='appType=iPhone';
        alert(apptype); 


    }

有了它,它根本没有改变appType = iPhone,我不知道我错过了什么?

这可以按照您想象的方式完成,但要认真 – 质疑这是否是实现目标的最佳方式.

使用jQuery,您可以使用attribute-contains-selector找到元素:

$('a[href*="type=iPhone"]');

* =表示“属性包含”

然后你可以只更换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>

然后假设一个变量包含哪个类型是活动的:

var osType = 'iPhone'; // change to 'Android' if need be or dynamically - whatever!

使用这个jQuery:

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

这种技术的实例:http://jsfiddle.net/K7UNg/1/

网友评论