虽然location.search对象可以获取到URL末尾的所有内容,但却没有办法逐个访问其中的每个查询字符串参数。
因此,可以像下面这样创建一个函数,用以解析查询字符串,然后返回包含所有参数的一个对象;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script> // demo : 假设当前访问路径为 :'file:///C:/Users/Administrator/Desktop/demo.html?qwq=1&we=23&23=5232'; function getQueryStringArgs(){ // 取得查询字符串并去掉开头的问号 var qs = (location.search.length > 0 ? location.search.substring(1) : ""), args = {}, // 保存数据的对象 items = qs.length ? qs.split("&") : [], // 取得每一项 item = null, name = null, value = null, i = 0, // 在for循环中使用 len = items.length; // 逐个将每一项添加到args对象中 for (i = 0; i < len; i++) { item = items[i].split("="); name = decodeURIComponent(item[0]); value = decodeURIComponent(item[1]); if (name.length) { args[name] = value; } } return args; } var res = getQueryStringArgs(); console.log(res); console.log(res['23']); </script> </head> <body> </body> </html>