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

2022-08-29 22:01:00

如何使用jQuery更改超链接的属性(链接目标)?href


答案 1

$("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/')

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

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

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


答案 2

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

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

和 之间的区别在于,它抓取 HTML 属性,而抓取 DOM 属性。propattrattrprop

您可以在这篇文章中找到更多详细信息: .prop() vs .attr()