jQuery:如何从链接中删除查询字符串

jQuery: How to remove query string from a link?

本文关键字:删除 查询 字符串 链接 jQuery      更新时间:2023-12-02

如何从链接的url中删除查询字符串?例如,我有

<a href="http://example.com/somepath/anotherpath?title=dog">The Link</a>

如何使用javascript/jquery仅从url中删除?title=dog

只需更改Location对象的search属性,就可以从链接中删除查询字符串。

$("#your_link")[0].search = "";

演示:http://jsfiddle.net/uSrmg/1/

或者,如果您需要针对多个元素:

$("a.someclass").each(function() {
 this.search = "";   
});

演示:http://jsfiddle.net/uSrmg/4/


如果你想解析一个任意的URL来删除查询字符串,你可以颠倒这篇文章中解释的技巧。例如:

function remove_qs(url) {
    var a = document.createElement('a'); // dummy element
    a.href = url;   // set full url
    a.search = "";  // blank out query string
    return a.href;
}

这应该是相当健壮的,因为它使用Location对象来进行所有解析。

示例用法:http://jsfiddle.net/uSrmg/


从锚点标记中删除查询字符串:

var anchor = $('#yourAnchor');
var href = anchor.attr('href');
if (href.indexOf('?') !== -1) {
   anchor.attr('href', href.split('?')[0]);
}

还有一种方法可以将搜索替换为空白。

String(document.location.href).replace("&title=dog", "");
var url=$('a').attr('href').split('?')[0];

在"?"上拆分并获得第一个项目。如果你想更改页面上所有链接的url,那么你可以使用以下代码:

$('a').each(function(i,el){ 
    $(el).attr('href', $(el).attr('href').split('?')[0]);
});

您可以在页面加载时将查询字符串从url中拆分为:-

$(function(){
  if(Modernizr.history)
  {
    history.replaceState({},"",location.href.split("?")[0]);
  }
});

这段代码对我有用:

var url = "www.foo.com/test?name=kevin&gender=Male&id=1234";
var res = url.replace("&gender=Male", "");
window.location.href =res;

通过javascript 拆分url中的特定字符串查询参数