【发布时间】:2012-07-18 14:13:47
【问题描述】:
如何从链接的 url 中删除查询字符串?例如我有
<a href="http://example.com/somepath/anotherpath?title=dog">The Link</a>
如何使用 javascript/jquery 从网址中仅删除 ?title=dog?
【问题讨论】:
标签: javascript jquery query-string
如何从链接的 url 中删除查询字符串?例如我有
<a href="http://example.com/somepath/anotherpath?title=dog">The Link</a>
如何使用 javascript/jquery 从网址中仅删除 ?title=dog?
【问题讨论】:
标签: javascript jquery query-string
您只需更改Location 对象的search property,即可从链接中删除查询字符串。
$("#your_link")[0].search = "";
演示:http://jsfiddle.net/uSrmg/1/
或者如果您需要定位多个元素:
$("a.someclass").each(function() {
this.search = "";
});
演示:http://jsfiddle.net/uSrmg/4/
如果您希望解析任意 URL 以删除查询字符串,您可以反转 this post 中解释的技巧。例如:
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/
【讨论】:
还有另一种方法可以将搜索替换为空白。
String(document.location.href).replace("&title=dog", "");
【讨论】:
从锚标记中删除查询字符串:
var anchor = $('#yourAnchor');
var href = anchor.attr('href');
if (href.indexOf('?') !== -1) {
anchor.attr('href', href.split('?')[0]);
}
【讨论】:
href 属性是否包含? 字符是不必要的 - 如果分隔符不存在,.split() 将简单地返回一个包含单个元素(整个字符串)的数组。
var url=$('a').attr('href').split('?')[0];
拆分“?”并获得第一项。如果要更改页面上所有链接的 url,则可以使用以下代码:
$('a').each(function(i,el){
$(el).attr('href', $(el).attr('href').split('?')[0]);
});
【讨论】:
[1],但您可能需要添加一些防弹措施,以防 href 没有 ? 字符。
您可以在页面加载时将查询字符串从 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中拆分特定的字符串查询参数
【讨论】: