如何使用JavaScript将页面上的所有特定href链接切换到其他链接?

如何使用JavaScript将页面上的所有特定href链接切换到其他链接?,javascript,jquery,html,regex,Javascript,Jquery,Html,Regex,我试图在我的标题中添加一些简单的JavaScript/jQuery,作为我网站上的垃圾邮件保护。假设我有一个垃圾邮件发送者发布了一个特定的URL,我想在它出现时重写它 我尝试了这个(在这个例子中,我试图将页面上的所有特定链接都更改为google。) 但是上面的方法不起作用。您的选择器需要精确匹配,您可以有几个选项,但最好是使用 这将查找每个包含字符串'//www.spamsite.com'的链接,并对其进行更改,但也会得到如下链接: <a href="http://google.com?s

我试图在我的标题中添加一些简单的JavaScript/jQuery,作为我网站上的垃圾邮件保护。假设我有一个垃圾邮件发送者发布了一个特定的URL,我想在它出现时重写它

我尝试了这个(在这个例子中,我试图将页面上的所有特定链接都更改为google。)

但是上面的方法不起作用。

您的选择器需要精确匹配,您可以有几个选项,但最好是使用

这将查找每个包含字符串
'//www.spamsite.com'
的链接,并对其进行更改,但也会得到如下链接:

<a href="http://google.com?s=//www.spamsite.com">Search for spam</a>

如果在加载jQuery和加载DOM之后,或者在将相关内容添加到页面并且href与目标完全匹配之后运行jQuery,则上述代码应该可以工作。请在JSFIDLE中重现您的问题,以便我们可以看到不起作用的具体情况。@jfriend00实际上,只有当链接与开头带有斜杠和
http://
的链接完全相同时,代码才会起作用。还有其他选择。它似乎起作用了。您包括jquery了吗。我认为您应该在保存之前验证垃圾邮件URL。还有,如果他们去了呢?@legostrmtroopr-是的,这就是为什么我的评论说“完全正确”。直到OP向我们展示了足够多的实际代码和HTML,让我们知道为什么它对他们不起作用,我们所能做的就是猜测可能的错误。据我所知,他们只是在内容进入DOM之前运行jQuery。这也是一种可能性。当OP没有向我们展示足够的实际代码时,会有很多猜测。精确性和jquery的问题需要在页脚而不是页眉中运行,这样它才能在php脚本生成href a标记时最后运行。非常感谢大家!!
$("a[href*='//www.spamsite.com']").attr('href', 'http://www.google.com/')
<a href="http://google.com?s=//www.spamsite.com">Search for spam</a>
$("a[href^='http://www.spamsite.com']").attr('href', 'http://www.google.com/')