单击链接时使用jQuery更改url

时间:2013-11-20 14:36:11

标签: javascript jquery html

我需要在点击链接时更改网址的一部分。

$('.slavearticle a.headlinelink').click(function () {
    var url = $(this).attr('href');
    url = url.replace('/something.example.com', 'betterexample.no');
    console.log(url);
    return false;
});

如果网址是something.example.com/index.html,那么期望的是,如果/将永远不会改变,它将被更改为betterexample.no/index.html所有内容

这似乎有效,但我有一个问题。 “something.example.com”需要更具活力

  

$('。slavearticle a.headlinelink')。click(function(){

     
    

var url = $(this).attr('href');

         

url = url.replace(something.example.com,'betterexample.no');

         

window.location.href = url;
    });

  

缺点是我有50个不同的网站需要此功能。是否有办法在/之后获取所有内容,以便这适用于任何网站?

5 个答案:

答案 0 :(得分:0)

添加一行: $(本).attr( 'href' 属性,URL);

 $('.slavearticle a.headlinelink').click(function(){

        var url = $(this).attr('href');
        url = url.replace('/something.example.com','betterexample.no');
        $(this).attr('href',url);
        console.log(url);
        return false;

        });

答案 1 :(得分:0)

当你使用jQuery获取一个attr时,你只需要字符串,而不是它的取自哪里,所以当你替换它时,你只是替换字符串而不是链接的实际href。有了这个,你将替换链接中的href:

$('.slavearticle a.headlinelink').click(function () {
    var url = $(this).attr('href',$(this).attr('href').replace('something.example.com', 'betterexample.no'));
    console.log(url);
    return false;
});

我认为你最好用纯JavaScript做这件事:

$('.slavearticle a.headlinelink').click(function () {
    this.href = this.href.replace('/something.example.com', 'betterexample.no');
    console.log(this.href);
    return false;
});

答案 2 :(得分:0)

这里我只更改包含“something.example.com”的所有链接

$('.slavearticle a.headlinelink[href*="something.example.com"]').click(function () {
    var newUrl = $(this).attr("href").replace("something.example.com","betterexample.no");
    $(this).attr('href',newUrl);
    // do NOT return false if you want the link to work
});

早先的建议:

$('.slavearticle a.headlinelink').click(function (e) {
    e.preventDefault(); // stop the link since we navigate
    var newUrl = $(this).attr("href").replace("something.example.com","betterexample.no");
    location = newUrl;
});

答案 3 :(得分:0)

不确定我是否理解所有要求,但这是您要找的吗? http://jsfiddle.net/cg7m3/

我基本上只是添加了window.location.href = url;,并且在你的替换字符串中删除了正斜杠。

$('.slavearticle a.headlinelink').click(function () {
    var url = $(this).attr('href');
    url = url.replace('something.example.com', 'google.com');
    console.log(url);
    window.location.href = url;
    return false;
});

答案 4 :(得分:-2)

试试这个,这对我有用

$('.slavearticle a.headlinelink').click(function () {
    var url = $(this).attr('href');
    url = url.replace('something.example.com', 'betterexample.no');
    console.log(url);
    return false;
});