博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
location对象查询字符串参数
阅读量:5160 次
发布时间:2019-06-13

本文共 1206 字,大约阅读时间需要 4 分钟。

虽然location.search可以返回从问号到URL末尾的所有内容,但却没有办法逐个访问其中的每个查询字符串参数。为此,可以创建下面这样一个函数,用以解析查询字符串,然后返回包含所有参数的一个对象:

1 function getQueryStringArgs(){ 2     //取得查询字符串并去掉开头的问号 3     var qs = (location.search.length > 0 ? location.search.substring(1) : ""); 4     //保存数据的对象 5     var args = []; 6     //取得每一项 7     var items = qs.length ? qs.split("&") : []; 8     var item = null; 9     var name = null;10     var value = null;11     //逐个将每一项添加到args对象中12     for(var i=0;i< items.length;i++){13         item = items[i].split("=");14         name = decodeURIComponent(item[0]);15         value = decodeURIComponent(item[1]);16         if(name.length){17             args[name] = value;18         }19     }20     return args;21 }22 23 //假设查询的字符串是?q=javascript&num=1024     var args = getQueryStringArgs();25     alert(args["q"]);//javascript26     alert(args["num"]);//10

这个函数的第一步是先去掉查询字符串开头的问号,前提是location.search中必须要包含一个或多个字符。然后将所有参数保存在args对象中,该对象以字面量形式创建。接下来根据和号(&)来分割查询字符串,并返回name=value格式的字符串数组。然后for循环会迭代这个数组,再根据等于号分割每一项,从而返回第一项为参数名,第二项为参数值的数组。再使用decodeComponent()分别解码name和value(因为查询字符串应该是被编码过的),最后将name作为args对象的属性,将value作为相应属性的值。最后调用函数,每个查询字符串参数都成了返回对象的属性,方便了对每个参数的访问。

转载于:https://www.cnblogs.com/guangyan/p/6686051.html

你可能感兴趣的文章
BeanShell简介
查看>>
python字符串操作
查看>>
不同程序语言的注释和变量要求
查看>>
语言基础(9):static, extern 和 inline
查看>>
邮件和短信验证码
查看>>
(转)Android studio 使用心得(五)—代码混淆和破解apk
查看>>
构建之法阅读笔记03
查看>>
ES5_03_Object扩展
查看>>
Apache-ab 接口性能测试
查看>>
EF 4.1 Code First Walkthrough
查看>>
常用MySQL语法
查看>>
bzoj 2600: [Ioi2011]ricehub
查看>>
创建数据库,表
查看>>
工厂模式
查看>>
计算机网络基础知识
查看>>
C#里如何遍历枚举所有的项
查看>>
如何在键盘出现时滚动表格,以适应输入框的显示
查看>>
超级强大的鼠标手势工具
查看>>
常用Dockerfile举例
查看>>
jquery的ajax用法
查看>>