博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何使用jQuery更改超链接的href
阅读量:3579 次
发布时间:2019-05-20

本文共 4955 字,大约阅读时间需要 16 分钟。

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


#1楼

使用

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

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

The CodeProject

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

$("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的这一部分替换为新的。 请注意,这为您提供了灵活性-可以在此处对链接进行任何形式的修改。


#2楼

在查询中使用attr方法。 您可以切换出具有新值的任何属性。

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

#3楼

根据您是要将所有相同的链接更改为其他链接,还是要仅控制页面给定部分中的链接,还是要单独控制每个链接,可以执行其中之一。

更改所有指向Google的链接,使它们指向Google Maps:

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

要更改给定部分中的链接,请将容器div的类添加到选择器。 此示例将更改内容中的Google链接,但不会更改页脚中的链接:

...link to Google in the content...

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

要更改各个链接,无论它们在文档中的位置如何,请向该链接添加一个ID,然后将该ID添加至选择器。 此示例将更改内容中的第二个Google链接,但不会更改第一个或页脚中的一个:

...link to Google in the content...

...second link to Google in the content...

$("a#changeme").attr('href', 'http://maps.google.com/');

#4楼

即使OP明确要求提供jQuery答案,但这些天都不需要使用jQuery。

一些没有jQuery的方法:

  • 如果要更改所有 <a>元素的href值,请全部选择它们,然后遍历 :(

    var anchors = document.querySelectorAll('a'); Array.prototype.forEach.call(anchors, function (element, index) { element.href = "http://stackoverflow.com"; });
  • 如果要更改实际上具有href属性的所有<a>元素的href值,请通过添加[href]属性选择器( a[href] )进行选择:(

    var anchors = document.querySelectorAll('a[href]'); Array.prototype.forEach.call(anchors, function (element, index) { element.href = "http://stackoverflow.com"; });
  • 如果要更改包含特定值的<a>元素的href值,例如google.com ,请使用属性选择器a[href*="google.com"] :(

    var anchors = document.querySelectorAll('a[href*="google.com"]'); Array.prototype.forEach.call(anchors, function (element, index) { element.href = "http://stackoverflow.com"; });

    同样,您也可以使用其他 。 例如:

    • a[href$=".png"]可用于选择href值以.png结尾的<a>元素。

    • a[href^="https://"]可用于选择<a>具有href值并 https:// <a>元素。

  • 如果要更改满足多个条件的<a>元素的href值:(

    var anchors = document.querySelectorAll('a[href^="https://"], a[href$=".png"]'); Array.prototype.forEach.call(anchors, function (element, index) { element.href = "http://stackoverflow.com"; });

..在大多数情况下不需要正则表达式。


#5楼

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

#6楼

仅仅为了它而停止使用jQuery! 仅使用如此简单。

document.querySelector('#the-link').setAttribute('href', 'http://google.com');


#7楼

更改Wordpress Avada主题徽标图像的HREF

如果您安装ShortCode Exec PHP插件,则可以创建我称为myjavascript的此Shortcode。

?>

现在,您可以转到外观/小部件并选择页脚小部件区域之一,并使用文本小部件添加以下短代码

[myjavascript]

选择器可能会根据您使用的图像以及是否已准备好视网膜而改变,但是您始终可以使用开发人员工具来找出它。


#8楼

单击“ menu_link”类的链接时,将调用此代码片段,并显示该链接的文本和URL。 返回false阻止链接被跟踪。

Option 1Option 2$('.menu_link').live('click', function() {   var thelink = $(this);   alert ( thelink.html() );   alert ( thelink.attr('href') );   alert ( thelink.attr('rel') );   return false;});

#9楼

这样做的简单方法是:

(自jQuery 1.0版开始)

$("a").attr("href", "https://stackoverflow.com/")

要么

(自jQuery 1.6版开始)

$("a").prop("href", "https://stackoverflow.com/")

同样,上述方式的优点在于,如果选择器选择单个锚,则仅更新该锚,并且如果选择器返回一组锚,则仅通过一条语句更新特定组。

现在,有很多方法可以识别确切的锚点或一组锚点:

很简单的一个:

  1. 通过标签名称选择锚: $("a")
  2. 通过索引选择锚点: $("a:eq(0)")
  3. 选择特定类的锚点(如在该类中,仅锚定类为active锚点): $("a.active")
  4. 选择具有特定ID的锚点(此处为profileLink ID示例): $("a#proileLink")
  5. 选择第一个锚href: $("a:first")

更有用的:

  1. 选择所有具有href属性的元素: $("[href]")
  2. 选择所有具有特定href的锚点: $("a[href='www.stackoverflow.com']")
  3. 选择所有不具有特定href的锚点: $("a[href!='www.stackoverflow.com']")
  4. 选择所有带有带有特定URL的href的锚点: $("a[href*='www.stackoverflow.com']")
  5. 选择以特定URL开头的带有href的所有锚点: $("a[href^='www.stackoverflow.com']")
  6. 选择所有以特定网址结尾的href锚: $("a[href$='www.stackoverflow.com']")

现在,如果要修改特定的URL,可以执行以下操作:

例如,如果您要为转到google.com的所有URL添加代理网站,则可以按以下方式实现它:

$("a[href^='http://www.google.com']")   .each(function()   {       this.href = this.href.replace(/http:\/\/www.google.com\//gi, function (x) {        return "http://proxywebsite.com/?query="+encodeURIComponent(x);    });   });

#10楼

属性中的href ,因此您可以使用纯JavaScript进行更改,但是如果您已经在页面中注入了jQuery,请不要担心,我将同时展示两种方式:

假设您在下面有这个href

Alireza Dezfoolian

您想更改链接...

使用不带任何库的纯JavaScript ,您可以执行以下操作:

document.getElementById("ali").setAttribute("href", "https://stackoverflow.com");

而且,在jQuery中,您可以执行以下操作:

$("#ali").attr("href", "https://stackoverflow.com");

要么

$("#ali").prop("href", "https://stackoverflow.com");

在这种情况下,如果您已经注入了jQuery,则jQuery可能看起来更短并且跨浏览器更多...但是除此之外,我使用JS之一...


#11楼

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

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

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

您可以在这篇文章中找到更多详细信息:

转载地址:http://etogj.baihongyu.com/

你可能感兴趣的文章
java.sql.SQLException: Access denied for user ‘‘@‘125.71.195.131‘ (using password: YES)
查看>>
yml文件不提示,如何解决?
查看>>
springcloud在做eureka时客户端集成ribbon,网页输出为网页的代码?
查看>>
【已解决】记录一次docker部署nginx内部能访问,外部不能访问的问题
查看>>
DockerFile CMD和ENYTYPOINT的区别
查看>>
Property or field ‘totalPages‘ cannot be found on null
查看>>
如何将List集合转换成字符串?
查看>>
artifactId‘ with value ‘xxxx‘ does not match a valid id pattern
查看>>
dubbo的@service不能注入到spring容器?
查看>>
com.xxx.common.service.xxxService‘ that could not be found.异常 @Autowire注入失败
查看>>
IDEA 2018同一应用开多个实例
查看>>
Failed to create parent directories for [/log/blog-dev.log/spring.log]
查看>>
IDEA Debug显示源码变量值无法显示?【已解决】
查看>>
PageHelper分页失败- 已解决
查看>>
ReidsTemplate<String,Integer> 报错说是RedisAutoConfiguration 未注入?
查看>>
java对mysql数据库进行增删改查
查看>>
java数据库常用命令
查看>>
java多线程相关介绍
查看>>
java基础知识总结
查看>>
面试题1.1 判定字符是否唯一
查看>>