2013-02-28 38 views
0

我不能fingure为什么这个代码不工作:解析URL字符串成JSON不断重新调整空对象

$(document).ready(function() { 

    $(".alertDeleteButton").click(function(e) { 

     var str = $(this).attr("href"); 
     alert(str); 

     var obj = str.split("&").reduce(function(prev, curr, i, arr) { 
      var p = curr.split("="); 
      prev[decodeURIComponent(p[0])] = decodeURIComponent(p[1]); 
      return prev; 
     }, {}); 

     alert(obj); 


     e.preventDefault(); 
    }); 

}); 

jsFiddle

所有我想要做的,就是用字符串在用户按下链接时创建一个json对象。

{“userdeleteid”:“55”,“dayid”:“55”}。等...

我已经搜索并找到了3种不同的方式来做到这一点,他们都给我[对象对象]的结果。

I wanted to implement this,但它似乎只在浏览器中查看URL,我希望它通过(this).attr(“href”)查看链接的值;

+0

'警报()'输出字符串,因此需要将对象转换为字符串。您应该使用Firebug的控制台或浏览器的等效工具进行调试。 – 2013-02-28 16:38:44

回答

2

您应该使用JSON.stringify(),像这样:

alert(JSON.stringify(obj)); 
+0

上帝该死的,我在文学上花了最后3个小时,拒绝在这里提出一个问题,因为我确信答案在我面前......所有3个版本,我得到的工作,只有得到[对象对象] WORK,我只需要你的线。感谢您保存我的理智! – Amir 2013-02-28 16:52:55

1

您可以使用JSON.stringify可作为现代浏览器API的一部分,如果你正在处理旧的浏览器,请参阅JSON 2 (第三方支持库)。

enter image description here