如何在点击时删除特定的查询字符串?

时间:2014-09-24 20:32:20

标签: javascript jquery query-string indexof

我们说我有以下网址字符串:

www.mysite.com?this&that&theOtherThing

我知道如何将查询字符串添加到任何链接,但我不知道如何删除它。

例如,我知道我可以通过执行以下操作添加查询字符串:

//just add within the href
<a href="?this">submit</a>

or

//set the href within jquery
$('button').attr('href', currentUrl + '&that');

如何在点击时删除相同的查询?

我尝试了以下操作,但收到了NaN错误:

$('button').attr('href', currentUrl - '&that');

有没有人就如何删除查询提出建议?

2 个答案:

答案 0 :(得分:1)

function remove_args(a, url, arg){
  a.attr('href', url.replace(arg,''));
}

HTML

<a href="#" onclick="remove_args(this, 'www.mysite.com?this&that&theOtherThing', '&that')">URL</a>

尝试这样的事情。只是一个小场景

答案 1 :(得分:1)

首先,您要替换“?that”,而不是“&amp; that”。其次,你有一个没有id的标签,但你要设置一个id为'button'的元素的'href'属性,它不会出现在你的代码片段中。

你遇到NaN错误,因为你试图从字符串中减去“?that”。相反,使用string.replace(“?that”,“”) - 这将删除“%that”,但不会删除它之后的任何内容(如果有的话)。如果你的字符串中有“&amp; that”之后的内容,请获取indexOf(“?that”),然后将字符串设置为自身的子字符串,如下所示:

HTML:

<a href="www.blah.com/page.aspx?that=hello" id="linkToModify">Click me</a>

使用Javascript:

var urlString = $("#linktoModify").prop("href");
urlString = urlString.toString().substring(0, urlString.indexOf("?"));
$("#linkToModify").prop("href", urlString);

另外,请记住,您的问题有点误导。您正在尝试使用javascript编辑字符串,而不是删除查询字符串。查询字符串是只读的,无法删除,但您可以轻松修改字符串,这似乎是您要执行的操作。