【问题标题】:Dynamic links using javascript [closed]使用 javascript 的动态链接 [关闭]
【发布时间】:2011-10-24 13:07:11
【问题描述】:

我的网站 (www.mysite.com) 中有以下 html 代码:

<a href="www.website.com?rh=1234">Link 1</a>
<a href="www.website.com/page/?rh=1234">Link 2</a>

我要做的是,当我的网站地址示例 www.mysite.com?r=9876 附加了查询字符串“r”时,html 应更改为:

<a href="www.website.com?r=9876">Link 1</a>
<a href="www.website.com/page/?r=9876">Link 2</a>

我想这可以通过 javascript 实现,但我不知道该怎么做。我在研究过程中找到了this,但这并不是我想要的。我希望仅在有查询字符串时发生更改。谁能帮帮我。

【问题讨论】:

  • 你好,我不明白你到底想做什么。你想用'r=1234'替换'rh=1234'吗?或将 '?r=1234' 替换为 '/page/?r=1234' ?还是别的什么??
  • @paic_citron 我想用 'r=query_string_id' 替换 'rh=1234' 并且我希望它只发生在特定域上,在这种情况下为 www.website.com。

标签: javascript jquery html dynamic query-string


【解决方案1】:

使用 jquery 选择器选择 href 属性中包含 rh 的链接
http://api.jquery.com/attribute-contains-selector/
然后使用 javascript 替换函数
http://www.w3schools.com/jsref/jsref_replace.asp 将 'rh' 替换为 'r'。
代码是这个
$('a[href*="www.website.com"]').attr("href",function(i,val){ return val.replace("rh","r"); });

你可以在http://jsfiddle.net/8jCpg/2/看demo

代码正在做我上面所说的事情。希望对你有帮助。

【讨论】:

  • 看不懂,能发个代码吗?
  • 这实际上会改变所有在 url 中包含 'rh' 的链接。当链接指向他的“www.website.com”时,作者实际上希望将查询字符串“rh”更改为“r”。使用这段代码可能会破坏很多链接。
  • @paic_citron 抱歉,我会编辑的。
  • @Hira 如果你有一个类似website.com/warhead/?a=123 的链接会发生什么。是的,它坏了=(
  • @paic_citron 是的,但我只是想用 r 替换 rh。抱歉不知道你的问题的答案。我想你的答案确实解决了它。谢谢。
【解决方案2】:
$(document).ready(function() {
    if (/[?&]r=/.test(location.href)) {
        $('a').each(function() {
            this.href = this.href
                + location.href.substr(location.href.indexOf('?'));
        });
    }
});

【讨论】:

  • 谢谢肖恩。我尝试了您的代码,但链接更改为 www.website.com?rh=1234?r=query_string_id 我正在尝试替换“rh=1234”,而不是在链接中再添加 1 个字符串。
【解决方案3】:

这个脚本会做:

$(document).ready(function() {
    $('a[href^="www.website.com"]').each(function(){
            $(this).attr("href",$(this).attr("href").replace(new RegExp("([?&])rh=([0-9])","g"),"$1r=$2"));
    });             
});
  • 首先我们遍历所有以“www.website.com”开头的链接
  • 然后我们使用搜索查询字符串“rh”的正则表达式更改 href。

【讨论】:

  • 我也在使用博主平台。
  • @Christina Lexi 这是 Sean Bright 发布的脚本。该脚本执行以下操作: 1. 检查浏览器地址栏中是否有查询字符串“rh”。 2.如果是,它将遍历所有链接并添加以字符'?'开头的href部分到href本身..
  • 对不起,我错误地发布了他的代码。我实际上使用了您的链接,链接更改为 www.mysite.com/www.website.com?r=1234
  • “www.mysite.com/www.website.com?r=1234”。你确定吗 ??这是一个工作示例:jsfiddle.net/mtPXd
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多