如何在jquery中替换map中的值?

时间:2012-10-15 14:41:38

标签: javascript jquery

var temp = { "100" = ["submenu 4", "submenu 5", "submenu 6"],
        "136" = ["submenu 10", "submenu 11", "submenu 12"],
        "125" = ["submenu 19", "submenu 20", "submenu 21"],
        "99"  = ["submenu 16", "submenu 17", "submenu 18"], 
        "77"  = ["submenu 13", "submenu 14", "submenu 15"],
        "70"  = ["submenu 1", "submenu 2", "submenu 3"],
        "4"  = ["submenu 7", "submenu 8", "submenu 9"] };

如何用符号替换 = ?或者如何在jquery函数中迭代上面的temp?

请提供解决方案。

3 个答案:

答案 0 :(得分:1)

此JSON无效,您无法在temp中替换'=',因为temp会在尝试将此值赋给它时引发错误。在代码中替换它以使其工作,否则您无法对此进行迭代。

答案 1 :(得分:1)

var temp = '{ "100" = ["submenu 4", "submenu 5", "submenu 6"],
        "136" = ["submenu 10", "submenu 11", "submenu 12"],
        "125" = ["submenu 19", "submenu 20", "submenu 21"],
        "99"  = ["submenu 16", "submenu 17", "submenu 18"], 
        "77"  = ["submenu 13", "submenu 14", "submenu 15"],
        "70"  = ["submenu 1", "submenu 2", "submenu 3"],
        "4"  = ["submenu 7", "submenu 8", "submenu 9"] }';
temp = temp.replace(/=/g,":");
temp = JSON.parse(temp);

这样的东西?

答案 2 :(得分:0)

除了将=标志更改为:之外,没有其他有效的解决方案。在这一点上完全停止。这实际上是解决这个问题的唯一方法,并使其成为有效的JavaScript对象。

如果从外部源获取此信息,可以对其进行一些正则表达式更改。如果是您的代码,则只需更改符号即可。