我想更改页面上所有链接中的变量值. 如果链接如下所示: 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/