有没有更好的方法将URL的location.search转换为对象?也许只是更高效或减少?我正在使用jQuery,但纯JS也可以使用.
var query = window.location.search.substring(1),queryPairs = query.split('&'),queryJSON = {}; $.each(queryPairs,function() { queryJSON[this.split('=')[0]] = this.split('=')[1]; });
解决方法
这是一个纯JS函数.解析当前URL的搜索部分并返回一个对象. (对于可读性而言,它有点冗长.)
function searchToObject() { var pairs = window.location.search.substring(1).split("&"),obj = {},pair,i; for ( i in pairs ) { if ( pairs[i] === "" ) continue; pair = pairs[i].split("="); obj[ decodeURIComponent( pair[0] ) ] = decodeURIComponent( pair[1] ); } return obj; }
在相关的说明中,您不是试图将单个参数存储在“一个JSON”中,而是存储在“一个对象”中.