一.<script> urlinfo=window.location.href; //获取当前页面的url len=urlinfo.length;//获取url的长度 offset=urlinfo.indexOf("?");//设置参数字符串开始的位置 newsidinfo=urlinfo.substr(offset,len)//取出参数字符串 这里会获得类似“id=1”这样的字符串 newsids=newsidinfo.split("=");//对获得的参数字符串按照“=”进行分割 newsid=newsids[1];//得到参数值 alert("您要传递的参数值是"+newsid); < /script>

二.更好的方法: 声明一个queryString函数 <script type="text/javascript"> Request = { QueryString : function(item){ var svalue = location.search.match(new RegExp("[\?\&]" + item + "=([^\&]*)(\&?)","i")); return svalue ? svalue[1] : svalue; } } < /script>

使用的时候像java一样调用就行了: <script type="text/javascript"> document.write( Request.QueryString("name") ); < /script>

下面是另种方法:

本文原理是使用正则表达式匹配location.search中的字符串。其中三个主要函数为 getQueryString()、getQueryStringByName(name)和getQueryStringByIndex(index)

三个主要方法:

方法

说明

getQueryString

获取QueryString的数组。

例如路径QueryStringDemo.html?id=5&type=1&flag=0

调用后返回["id=5", "type=1", "flag=0"]

getQueryStringByName

根据QueryString参数名称获取值

getQueryStringByIndex

根据QueryString参数索引获取值

复制代码 代码如下:
//获取QueryString的数组  function getQueryString(){  var result = location.search.match(new RegExp("[\?\&][^\?\&]+=[^\?\&]+","g"));  for(var i = 0; i < result.length; i++){  result[i] = result[i].substring(1);  }  return result;  }  //根据QueryString参数名称获取值  function getQueryStringByName(name){  var result = location.search.match(new RegExp("[\?\&]" + name+ "=([^\&]+)","i"));  if(result == null || result.length < 1){  return "";  }  return result[1];  }  //根据QueryString参数索引获取值  function getQueryStringByIndex(index){  if(index == null){  return "";  }  var queryStringList = getQueryString();  if (index >= queryStringList.length){  return "";  }  var result = queryStringList[index];  var startIndex = result.indexOf("=") + 1;  result = result.substring(startIndex);  return result;  } 

测试页面路径:QueryStringDemo.html?id=5&type=1&flag=0  页面加载时:  在QueryString's name后的文本框中输入要获取的QueryString的名称获取相应的值:  在QueryString's index后的文本框中输入要获取的QueryString的索引获取相应的值(索引从0开始):  这样就可以在页面中方便的获取QueryString的值了。最后附上测试页面QueryStringDemo.html的源代码:

复制代码 代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/1999/xhtml">  <head>  <meta content="text/html; charset=gb2312" http-equiv="Content-Type" />  <title>QueryString获取演示代码 www.jb51.net</title>  <script type="text/javascript">  //获取QueryString的数组  function getQueryString(){  var result = location.search.match(new RegExp("[\?\&][^\?\&]+=[^\?\&]+","g"));  for(var i = 0; i < result.length; i++){  result[i] = result[i].substring(1);  }  return result;  }  //根据QueryString参数名称获取值  function getQueryStringByName(name){  var result = location.search.match(new RegExp("[\?\&]" + name+ "=([^\&]+)","i"));  if(result == null || result.length < 1){  return "";  }  return result[1];  }  //根据QueryString参数索引获取值  function getQueryStringByIndex(index){  if(index == null){  return "";  }  var queryStringList = getQueryString();  if (index >= queryStringList.length){  return "";  }  var result = queryStringList[index];  var startIndex = result.indexOf("=") + 1;  result = result.substring(startIndex);  return result;  }  //绑定当控件高亮选中时,点击“回车键”时执行的操作  //control:要绑定事件的控件  //func:要执行的方法  function bindEnterEvent(control, func){  control.onkeypress = function(){  if (event.keyCode == 13){  func();  }  }  }  //根据输入的QueryString名称获取值  function getByName(){  var name = document.getElementById("txtQueryStringName").value;  document.getElementById("txtResult").innerHTML = getQueryStringByName(name);  }  //根据输入的QueryString的索引获取值  function getByIndex(){  var index = document.getElementById("txtQueryStringIndex").value;  document.getElementById("txtResult").innerHTML = getQueryStringByIndex(index);  }  </script>  </head>  <body>  <div>  <span>QueryString : </span><span id="queryString"></span>  </div>  <div>  <span>QueryString's name : </span>  <input id="txtQueryStringName" name="txtQueryStringName" type="text" />  <input name="btnGetByName" type="button" value="获取" onclick="getByName()" />  </div>  <div>  <span>QueryString's index : </span>  <input id="txtQueryStringIndex" name="txtQueryStringIndex" type="text" />  <input name="btnGetByIndex" type="button" value="获取" onclick="getByIndex()" />  </div>  <div>  <span>结果 :</span><span id="txtResult"></span>  </div>  <!--页面加载时执行的操作-->  <script type="text/javascript">  //显示所有QueryString  document.getElementById("queryString").innerHTML = getQueryString();  //为txtQueryStringName绑定回车事件  bindEnterEvent(txtQueryStringName, getByName);  //为txtQueryStringIndex绑定回车事件  bindEnterEvent(txtQueryStringIndex, getByIndex);  </script>  </body>  </html> 

使用js获取QueryString的方法小结的更多相关文章

  1. 原生js获取鼠标坐标方法全面讲解-zmq

    原生js获取鼠标坐标方法全面讲解:clientX/Y,pageX/Y,offsetX/Y,layerX/Y,screenX/Y 一.关于js鼠标事件综合各大浏览器能获取到坐标的属性总共以下五种:eve ...

  2. js获取域名的方法

    本文实例讲述了js获取域名的方法.分享给大家供大家参考.具体实现方法如下: 复制代码代码如下: <script>//获取域名var k_host = window.location.hos ...

  3. JS1 js获取dom元素方法

     js获取dom元素方法  1.通过ID选取元素(getElementById) 1)使用方法:document.getElementById("domId")         其 ...

  4. 【功能代码】---4用JS获取地址栏参数方法

    用JS获取地址栏参数方法 // 方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) { var reg = new Reg ...

  5. 使用JS获取当前地理位置方法汇总

    使用JS获取当前地理位置方法汇总 投稿:hebedich 字体:[增加 减小] 类型:转载 时间:2014-12-18我要评论 这篇文章主要介绍了使用JS获取当前地理位置方法汇总,需要的朋友可以参考下 ...

  6. js面向对象 多种创建对象方法小结

    转自js面向对象 多种创建对象方法小结 1.对象字面量 var clock={ hour:12, minute:10, second:10, showTime:function(){ alert(th ...

  7. 【JS】---4用JS获取地址栏参数方法

    用JS获取地址栏参数方法 // 方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) { var reg = new Reg ...

  8. js 获取小数点位数方法及 字符串与数字之间相互转换方法

    1.获取小数点位数方法 a. 使用 js 中 subsrting,indexOf,parseFloat三个函数,代码如下: var s = "22.127456" ;//s 为 字 ...

  9. js获取IP地址方法总结_转

    js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338.html 1,js取得IP地址 ...

随机推荐

  1. 《剑指offer》-链表找环入口

    题目描述 一个链表中包含环,请找出该链表的环的入口结点. 初步想法是每个节点做几个标记,表示是否被访问过,那么遍历链表的时候就知道哪个被访问到了.但是不会实现. 另一个直觉是判断链表有环的算法中出现过 ...

  2. 自己实现一个和PYTHON的库一模一样的sha_256算法

    同时在看一本书<从零开始-自己动手写区块链>, 这书讲得易懂,我也动手实践一下. 这个算法和python3本身的实现相同, 所以,同样的字串,摘要是相同的. import struct i ...

  3. HashTable、HashMap、ConcurrentHashMap的区别

    HashTable是做了同步的,HashMap未考虑同步.所以HashMap在单线程情况下效率较高:HashTable在的多线程情况下,同步操作能保证程序执行的正确性. HashMap是非线程安全的, ...

  4. day5模块学习--re正则模块

    1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

  5. c++ primer 笔记 (二)

    第二章笔记  (貌似记得有点多)   把负值赋给unsigned对象时完全合法的,其结果是该负数对该类型的取值个数求模后的值   -1     (对265求模)  255   float型只能保证6位 ...

  6. Codeforces 160D Edges in MST tarjan找桥

    Edges in MST 在用克鲁斯卡尔求MST的时候, 每个权值的边分为一类, 然后将每类的图建出来, 那些桥就是必须有的, 不是桥就不是必须有. #include<bits/stdc++.h ...

  7. L3-020 至多删三个字符 (30 分) 线性dp

    给定一个全部由小写英文字母组成的字符串,允许你至多删掉其中 3 个字符,结果可能有多少种不同的字符串? 输入格式: 输入在一行中给出全部由小写英文字母组成的.长度在区间 [4, 1] 内的字符串. 输 ...

  8. 最短路径问题 HDU3790 (dijkstra)

    基础的dijkstra问题  加上了花费 #include<bits/stdc++.h> using namespace std; ][][]; ];]; #define INF 9999 ...

  9. 035 HDFS的联盟Federation

    一:概述 1.单个namenode的局限性 namespace的限制 单个namenode所能存储的对象受到JVM中的heap size的限制 namenode的扩张性 不可以水平扩张 隔离性 单个n ...

  10. Camera摄像头

    <LinearLayout android:id="@+id/btn_layout" android:layout_width="match_parent" ...