加载前js和编辑url - 如何做到这一点

时间:2013-11-27 12:16:49

标签: javascript jquery

我有一个网址:

www.domain.com/bla/
结果页面中的

和按钮:

show 10, 20, 50 per page

和分页:

1, 2, 3, 5.. 

但是,点击10后,网址会变为www.domain.com/bla/?show=10,然后如果我点击页面2,则show=10正在消失并成为www.domain.com/bla/?page=2

我在js中有几个解决方案,但这样做的最佳和专业方法是什么?

我的代码:

var show= $('#show').val();
var url = String(window.location);
if(url.indexOf("page") !== -1){
      var newurl = url +'&show='+show;
      $('.entries').html(' ').load(newurl, function(){
              $(this).fadeIn();
       });
}else{
      var newurl = url +'?show='+sortterm;
      $('.entries').html(' ').load(newurl, function(){
              $(this).fadeIn();
       });
}

1 个答案:

答案 0 :(得分:2)

只需使用JS replace 方法

var yourURL = "www.domain.com/bla/?page=10";
var newURL = yourURL.replace("?page", "?show"); //returns www.domain.com/bla/?show=10

更新

借助此answer,我学会了使用以下原型在特定索引处插入字符串。

String.prototype.splice = function( idx, rem, s ) {
    return (this.slice(0,idx) + s + this.slice(idx + Math.abs(rem)));
};

使用这个我修改了代码

var url = "www.domain.com/bla/?page=10";
var insertIndex = url.indexOf('page=10'); //get the index of page
var final = url.splice( insertIndex, 0, "page=2&" ).replace('&page', '&show');

console.log(final); //returns www.domain.com/bla/?page=2&show=10

JSFiddle