协慌网

登录 贡献 社区

如何使用 jQuery 更改超链接的 href

如何使用 jQuery 更改超链接的 href?

答案

运用

$("a").attr("href", "http://www.google.com/")

将修改所有超链接的 href 以指向 Google。你可能想要一个更精致的选择器。例如,如果您混合使用链接源(超链接)和链接目标(也称为 “锚点”)锚标记:

<a name="MyLinks"></a>
<a href="http://www.codeproject.com/">The CodeProject</a>

... 那么你可能不想意外地向它们添加href属性。为了安全起见,我们可以指定我们的选择器只匹配<a>标签与现有的href属性:

$("a[href]") //...

当然,你可能会想到一些更有趣的东西。如果要将锚点与特定的现有href匹配,可以使用以下内容:

$("a[href='http://www.google.com/']").attr('href', 'http://www.live.com/')

这将找到href与字符串http://www.google.com/完全匹配的链接。更复杂的任务可能是匹配,然后只更新部分href

$("a[href^='http://stackoverflow.com']")
   .each(function()
   { 
      this.href = this.href.replace(/^http:\/\/beta\.stackoverflow\.com/, 
         "http://stackoverflow.com");
   });

第一部分仅选择 href 以http://stackoverflow.com 开头的链接。然后,定义一个函数,该函数使用简单的正则表达式将 URL 的这一部分替换为新部分。请注意这为您提供的灵活性 - 可以在此处对链接进行任何类型的修改。

使用 jQuery 1.6 及更高版本,您应该使用:

$("a").prop("href", "http://www.jakcms.com")

propattr之间的区别在于attr抓取 HTML 属性,而prop抓取 DOM 属性。

你可以在这篇文章中找到更多细节: .prop()vs .attr()

在查找中使用attr方法。您可以使用新值切换任何属性。

$("a.mylink").attr("href", "http://cupcream.com");