【发布时间】:2011-08-12 19:01:27
【问题描述】:
我想要类似的东西
?key=value?key=value
出一个js字典就是
{
key:value,
key:value
}
【问题讨论】:
-
我想你的意思是
?key=value&key=value:)
标签: javascript
我想要类似的东西
?key=value?key=value
出一个js字典就是
{
key:value,
key:value
}
【问题讨论】:
?key=value&key=value :)
标签: javascript
如果使用jQuery,可以使用jQuery.param:
var params = { width:1680, height:1050 };
var str = jQuery.param( params );
// str is now 'width=1680&height=1050'
否则,这里有一个函数:
function serialize(obj) {
var str = [];
for(var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
return str.join("&");
}
alert(serialize({test: 12, foo: "bar"}));
【讨论】:
var str = $.param( params ); 。
现在有一个更简单的方法来做到这一点:
URLSearchParams 的 API 是 here
var url = new URL('https://example.com/');
url.search = new URLSearchParams({blah: 'lalala', rawr: 'arwrar'});
console.log(url.toString()); // https://example.com/?blah=lalala&rawr=arwrar
【讨论】:
var url = new URLSearchParams(params).toString();
ECMAScript 2016 也是如此:
let params = { width:1680, height:1050 };
// convert object to list -- to enable .map
let data = Object.entries(params);
// encode every parameter (unpack list into 2 variables)
data = data.map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`);
// combine into string
let query = data.join('&');
console.log(query); // => width=1680&height=1050
或者,作为单线:
let params = { width:1680, height:1050 };
Object.entries(params).map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`).join('&');
// => "width=1680&height=1050"
【讨论】:
text ${1+1} // 将输出 "text 2" developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…