使用javascript的动态链接

时间:2011-10-24 13:07:12

标签: javascript jquery html dynamic query-string

我的网站(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,但这并不是我正在寻找的。我希望只有在有查询字符串时才会发生更改。有人可以帮助我。

3 个答案:

答案 0 :(得分:2)

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

您可以在http://jsfiddle.net/8jCpg/2/

查看演示

代码正在做我上面所说的事情。我希望它可以帮到你。

答案 1 :(得分:1)

$(document).ready(function() {
    if (/[?&]r=/.test(location.href)) {
        $('a').each(function() {
            this.href = this.href
                + location.href.substr(location.href.indexOf('?'));
        });
    }
});

答案 2 :(得分:1)

此脚本将执行此操作:

$(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。