Javascript:使用查询字符串

时间:2011-12-03 00:29:25

标签: javascript

我正在尝试编写一个Javascript函数来获取浏览器的查询字符串,并允许将新的键/值传递给该函数。如果密钥存在,我需要替换该值。由于我花了最后3.5个小时,我还没有接触到替换部分。

到目前为止,我在这里使用答案:How to get the query string by javascript?来获取查询字符串。但是,它似乎不起作用...我测试的网址是:http://www.site.com/poo?drwho=tombaker&companion=k9

  var assoc  = {}; 
  var decode = function (s) { return decodeURIComponent(s.replace(/\+/g, " ")); }; 
  var queryString = location.search.substring(1);  
  var keyValues = queryString.split('&');  

  for(var i in keyValues) {  
     var key = keyValues[i].split('=');  
     assoc[decode(key[0])] = decode(key[1]);  
  }  

  if(assoc["dr"] === undefined ) { 
     // not found. todo: replace
  } 

我真的很喜欢任何帮助!有没有更简单的方法使用JQuery做到这一点?

2 个答案:

答案 0 :(得分:2)

在此处复制并粘贴您的代码:http://jsfiddle.net/6KcWh/5/,并添加了对JSON.stringify()的调用,以检查assoc的内容。结果assoc未定义。但是,当然assoc.dr未定义,因为dr没有查询字符串参数。 drwho的查询字符串参数。看起来你正在寻找错误的查询字符串参数。

答案 1 :(得分:1)

您似乎在滥用for...in

尝试将for循环转换为标准for (i = 0 ; i < keyValues.length; i++)并查看一些other answers,了解JavaScript中使用的for...in