Jquery如何获取当前url并更改查询参数

时间:2012-04-16 09:00:36

标签: jquery

当前网址

   http://www.example.com/search/?accommodation=1&venue=&seating=2&min=&max=&feature_list=7|8|9

在jquery中是否有一种方法我如何抓住上面这个的url ....并且feature_list参数将其值(7 | 8 | 9)更改为 8 | 9 | 10

我不需要更改URL标头,只是我想将此输出链接到HREF ..

这是我想从当前网址实现的目标。

<a href="http://www.example.com/search/?accommodation=1&venue=&seating=2&min=&max=&feature_list=8|9|10">Link</a>

我使用它作为过滤系统......

这是一个动态网址,所以7 | 8 | 9一直在变化......

3 个答案:

答案 0 :(得分:2)

var url = window.location.href.replace('7|8|9', '8|9|10'),
    $link = $('<a href="'+ url +'">Link</a>');

答案 1 :(得分:1)

可能不是最好的解决方案,但是......

var urla = window.location.search.replace('?','').split('&');

$.each(urla, function(j,v)
{
  v=v.split('=');

  if(v[0]=='feature_list')
  {
    var ft=parseInt(v[1].replace(/.*\|/, ''));
    var fts=[];

    for(var i=ft-1; i<ft+2; i++)
      fts.push(i);

    urla[j]=v[0]+'='+(fts.join(','));
  }  
});

urla = '?'+urla.join('&');
$link = $('<a/>',{'href':urla}).text('Link');

答案 2 :(得分:0)

  query = 'feature_list'    
  query = query.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
        var expr = "[\\?&]"+query+"=([^&#]*)";
        var regex = new RegExp( expr );
        var results = regex.exec( window.location.href );
        if( results !== null ) {
            return  results[1];
            return   decodeURIComponent(results[1].replace(/\+/g, " "));
        } else {
            return   false;
        }

我找到的这个函数将返回顶部给出的某个参数的值

然后使用elclanrs解决方案并做了

 url = window.location.href.replace(ans, '8|9|10'),
 window.location.href = url;