添加参数到URL,可能有也可能没有查询参数?

时间:2014-01-08 14:17:23

标签: javascript jquery

我的网址可以是以下任何一种(或更多):

http://www.mysite.com/some/url
http://www.mysite.com/some/url?a=b
http://www.mysite.com/some/url?a=b&c=d

我想要一种简单的方法将另一个值追加到最后,例如“e = f。所以在每种情况下我最终会得到:

http://www.mysite.com/some/url?e=f
http://www.mysite.com/some/url?a=b&e=f
http://www.mysite.com/some/url?a=b&c=d&e=f

最简单的方法是什么?以下内容不适用于所有情况:

var url = 'http://www.mysite.com/some/url';
var newQuery = 'e=f';
url += '?' + newQuery;

Jquery中是否有内容可以处理解析URL和添加参数?

4 个答案:

答案 0 :(得分:2)

如果您没有查询字符串,则会添加一个查询字符串(或)如果已有查询字符串,则会附加到现有字符串。

var url = 'http://www.mysite.com/some/url?a=b';
var newQuery = 'e=f';
url += ((url.indexOf('?') != -1) ? '&' : '?') + newQuery;

答案 1 :(得分:1)

你可以这样做:

var url = 'http://www.mysite.com/some/url';
var newQuery = 'e=f';
url += (url.indexOf('?') == -1 ? '?' : ' &') + newQuery;

如果indexOf不在网址中,则会与?核对,并添加?,否则& +您的newQuery

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

答案 2 :(得分:0)

让newQueries始终是一个数组,如果它是空的 - 只需使用url,如果不是 - 附加值。

var url = 'http://www.mysite.com/some/url';
var newQueries = ['e=f', 's=e', 'x=y'];
url += newQueries.length && '?' + newQueries.join('&');

答案 3 :(得分:0)

将带有字符串元素的数组变量中的其他参数添加到其中 变量到你的网址

动态更新数组并添加参数

示例:

var additional_params = [' e = f',' s = e']

如果additional_params.length!= 0

" http://www.mysite.com/some/url&#34?; + additional_params.join('&')