如何在点击时更改href值

时间:2015-02-11 09:46:00

标签: javascript jquery ajax

我有这个链接<a href="/Countries/388/10">next</a>。当我点击下一个href将值更改为<a href="/Countries/388/20">next</a>而不刷新时,我怎么能实现这一点。当用户再次点击30 ...再次40 ....任何想法?像计数器一样,点击后添加10个

5 个答案:

答案 0 :(得分:4)

$("a").click(function(e){
    e.preventDefault();
    $(this).attr('href', '/Countries/388/20');
});

您需要使用preventDefault()来不重定向。

并使它像计数器

$("a").click(function(e){

e.preventDefault();
var _url = $(this).attr("href");
var _url_start = '/Countries/388/';
var _url_end = parseInt(_url.substr(url.lastIndexOf("/"), url.length-1));
$(this).attr('href', _url_start+(_url_end+10)');
    });

答案 1 :(得分:0)

试试这个:

$('a').click(function(){
   $(this).prop('href','/Countries/388/20');
});

答案 2 :(得分:0)

标记:

   <a id="myLink" href="/Countries/388/10">next</a>

jQuery的:

   $('#myLink').click(function() { $(this).attr('href', '/Countries/388/20' });

在这里,我已将a元素id用于选择目的。 jQuery根据id选择此元素,并将新值分配给href属性。

这似乎是奇怪的要求,但我不得不说。

答案 3 :(得分:0)

this

怎么样?

代码:

$('a').click(function(e){
    var countarr = $(this).attr('href').split('/');
    var countval = countarr.pop();
    countval = parseInt(countval,10) + 10;
    var url =  countarr.join('/') + "/" + countval;
    alert(url);
    $(this).attr('href',url);
    e.preventDefault();
})
如果要重定向

,请

删除e.preventDefault();

答案 4 :(得分:0)

我认为最简单的方法是使用RegEx:

$('a.next').click(function(event){
    event.preventDefault(); //Prevent the link from going anywhere
    var href=$(this).prop('href');
    var RegEx = /(.*)\/([\d]+)/g
    var Number=href.replace(RegEx,'$2');
    Number=parseInt(Number)+10
    href=href.replace(RegEx,'$1'+'/'+Number);
    $(this).prop('href', href);
});

EXAMPLE

更新

每次页面重新加载时这样做都比使用的后端语言(PHP,.NET等)更好,但是如果必须使用jQuery,这应该能够做到。< / p>

$('a.next').click(function(event){
    event.preventDefault(); //Prevent the link from going anywhere
    var href=$(this).prop('href');
    var RegEx = /(.*)\/([\d]+)/g
    var URL = href.replace(RegEx,'$1')
    if (window.location.href.indexOf(URL) > -1) { // If this is the current URL
        var Number=window.location.href.replace(RegEx,'$2');
        Number=parseInt(Number)+10
        $(this).prop('href', URL + '/' + Number);
    } else {
        var Number=href.replace(RegEx,'$2');
        Number=parseInt(Number)+10
        $(this).prop('href', URL + '/' + Number);
    }
});