繁体   English   中英

单击链接时用jQuery更改URL

[英]alter url with jQuery when link is clicked

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

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

理想的结果是,如果url为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个不同的站点需要此功能。 有没有办法在/之后获取所有内容,从而使其适用于任何站点?

再增加一行:$(this).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;

        });

当您使用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;
});

在这里,我只是更改了所有包含“ 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;
});

不知道我是否了解所有要求,但这是您要寻找的吗? 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;
});

试试这个,这对我有用

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM