我需要使用jquery更新href值

时间:2010-08-11 14:05:19

标签: jquery

我需要使用jquery更新页面的href值。 假设href =“http://www.google.com?gsec=account”应更改为href =“http://account.google.com?gsec=account”我将如何完成此操作。

7 个答案:

答案 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");
});