我需要使用jquery更新页面的href值。 假设href =“http://www.google.com?gsec=account”应更改为href =“http://account.google.com?gsec=account”我将如何完成此操作。
答案 0 :(得分:7)
这将在我认为您正在寻找的页面中替换 。
// Find `<a>` elements that contain `www.google.com` in the `href`.
$('a[href*="www.google.com"]').attr('href', function(i,href) {
// return a version of the href that replaces "www." with "accounts."
return href.replace('www.', 'accounts.');
});
试一试: http://jsfiddle.net/dT8j6/
编辑:此版本允许https://
以及不包含www.
的链接。
试一试: http://jsfiddle.net/dT8j6/1/
$('a[href*="google.com"]').attr('href', function(i,href) {
return href.replace(/^http(s*):\/\/(www\.)*google.com/, 'http$1://accounts.google.com');
});
编辑:如果您只想更改包含gsec=account
的元素,请将选择器更改为$('a[href*="gsec=account"]')
。
答案 1 :(得分:3)
让我们说你有这个:
<a href="http://www.ibm.com" id="myLink">
你应该用这个:
var newHref = "http://google.com";
$("#myLink").attr('href', newHref );
答案 2 :(得分:1)
这是重复:
How to change the href for a hyperlink using jQuery
没有提到的一个场景是,如果你在你的锚点上设置了一个需要更改的id,那么你可以在jQuery中使用id作为选择器。
$("#LinkId").attr('href', "http://account.google.com?gsec=account")
答案 3 :(得分:1)
这应该有希望为你的问题提供一个非常完整的解决方案(无论如何我最好能解释它):
$(function() {
$('a').each(function() {
var $this = $(this),
href = $this.attr('href');
var res = href.match(/(.*?)(www)(\.google\.com.*?)([?&]gsec=)([^&]+)(.*)/);
if (null != res) {
// remove the "full match" entry
res = res.slice(1);
// replace www match with account match
res[1] = res[4];
// update the href attribute
$this.attr('href', res.join(''))
}
});
});
<小时/> 编辑:如果“帐户”是静态值,那么这也会有效:
$(function() {
$('a').each(function() {
var $this = $(this),
href = $this.attr('href');
var res = href.match(/(.*?\/\/)(www)(\.google\.com.*?)([?&]gsec=account)(&?.*)/);
if (null != res) {
// remove the "full match" entry
res = res.slice(1);
// replace www match with account match
res[1] = 'account';
// update the href attribute
$this.attr('href', res.join(''))
}
});
});
请注意,这些解决方案假设URL中可能存在其他变体,例如http / https和其他查询字符串变量。
答案 4 :(得分:0)
我认为你在问题中遗漏了一些东西。尽管如此:
var link = $("a"); // Or some other selector to access the link
link.attr("href", "http://account.google.com?gsec=account");
答案 5 :(得分:0)
使用jQuery的.attr()
方法。使用一个参数,它返回属性值,并设置两个参数。
$("a#whatever").attr("href", "http://account.google.com?gsec=account");
答案 6 :(得分:0)
如果您要更改所有链接:
$(document).ready(function() {
$("a").attr("href", "http://account.google.com?gsec=account");
});