Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更改页面中所有链接的href?_Javascript_Php_Jquery_Url Rewriting_Preg Replace - Fatal编程技术网

Javascript 如何更改页面中所有链接的href?

Javascript 如何更改页面中所有链接的href?,javascript,php,jquery,url-rewriting,preg-replace,Javascript,Php,Jquery,Url Rewriting,Preg Replace,我只想在页面加载时更改所有href链接。使用JavaScript、JQuery或任何其他方法 我在页面上的链接如下 <a href="http://example.com/book"> <a href="http://example.com/sheo"> <a href="http://example.com/belt"> 进入 是否可以使用替换(我只是猜测)? 还请查看查询字符串如何不改变,只改变主机名。 很抱歉造成混淆。在document rea

我只想在页面加载时更改所有href链接。使用JavaScript、JQuery或任何其他方法

我在页面上的链接如下

<a href="http://example.com/book">
<a href="http://example.com/sheo">
<a href="http://example.com/belt">

进入


是否可以使用替换(我只是猜测)? 还请查看查询字符串如何不改变,只改变主机名。
很抱歉造成混淆。

在document ready函数中尝试使用以下jquery代码:

$(document).ready(function() {
  $('a').attr('href', 'http://a.example.com');
  });
按如下方式操作:

$('a').attr('href','http://a.example.com');
就是这样。

使用jQuery:

$("a").attr("href", "http://a.example.com");
或者,如果您想要那些带有
http://example.com

$('a[href="http://example.com"]').attr("href", "http://a.example.com");
尝试:


应该做你想做的事情,并保持请求后面的链接完好无损

$('a').each(function(i,link){
    link.href = link.href.replace('http://example.com/','http://a.example.com/');
});

这改进了Jhecht的答案,允许您替换URL的第一部分,同时保留第二部分:

$('a').each(function(i,link){
    var reg = /(http:\/\/example.com\/)(.*)/
    var newlink = link.href.replace(reg, 'http://m.example.com/$2')
    link.href = newlink;
    link.innerHTML = newlink;
});

你是说如果你有
http://cnn.com
您想将其更改为
http://a.cnn.com
,或者是
http://example.com
所有这些都是,因为我想知道这些答案是否是在开玩笑?例如,链接到
http://m.example.com/
?作为一个补充,有了这个问题,我不知道是应该否决所有的投票,还是投票支持“不清楚你在问什么”;惩罚那些试图帮助解决一个不清楚的问题的人似乎不公平。这解决了我的问题,但请建议我是否有与查询字符串的链接。同样,也有很多链接具有不同的查询字符串,但具有相同的基本url example.com作为将来的参考,@Racheal,这进一步的信息应该在您最初的问题中。最好接受其中一个答案,然后提出一个新问题来解决这个新问题。不需要循环每个“a”元素。我认为这应该可以完成您的工作。但是如何使用查询字符串进行更改,此外,还有许多具有不同查询字符串但具有相同基本url example.com的链接,如果您试图更改网站中具有
的所有链接http://example.com/“
将它们添加到
”http://a.example.com/“
那么是的,这应该行得通。如果没有更多的细节,我无法更具体地回答您的问题。我想您的答案非常接近,我使用的是$('a')。每个(函数(I,link){var reg=/(http:\/\/example.com\/)(.*)/link.href=link.href.replace(reg,);});“id=“gg”style=“font size:36px”>test1“id=“gg”style=“font size:36px”>test2@Racheal,我已经更新了我的答案,以替换链接文本,如果你也这么做的话。你好,安迪,我已经实现了你的代码,但它不起作用,我一次又一次地检查所有代码,即使在简单的测试文件中,它也不起作用,我也在使用最新的jquery文件。我不确定那里发生了什么。宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果宾果。你是个聪明人。非常感谢。
$('a').each(function(i,link){
    link.href = link.href.replace('http://example.com/','http://a.example.com/');
});
$('a').each(function(i,link){
    var reg = /(http:\/\/example.com\/)(.*)/
    var newlink = link.href.replace(reg, 'http://m.example.com/$2')
    link.href = newlink;
    link.innerHTML = newlink;
});