【问题标题】:how to parse a serialized array to a jQuery array如何将序列化数组解析为 jQuery 数组
【发布时间】:2016-10-20 09:41:39
【问题描述】:

我有一个 jQuery 可排序列表,我正在序列化结果。

var data = $("#sortable").sortable('serialize');

结果如下:

item[]=41&item[]=49&item[]=51&item[]=35&item[]=58&item[]=45&item[]=32&item[]=36&item[]=26&item[]=27&item[]=33&item[]=31&item[]=29

现在我想使用 jQuery $each 选择每个数组索引。

    $.each(data, function(index,  value ) {

        alert( value );
    });

我会得到错误:

TypeError: 无法使用 'in' 运算符在 item[]=51&item[]=41&item[]=49&item[]=35&item[]=58&item[]=45&item[]=32&item[]= 中搜索 'length' 36&item[]=26&item[]=27&item[]=33&item[]=31&item[]=29

所以可能我必须使用 JSON.parse() 将其解析为数组:

        var data = $("#sortable").sortable('serialize');
    data=JSON.parse(data);
    $.each(data, function(index,  value ) {
        alert( value );
    });

这会导致错误

VM327:1 Uncaught SyntaxError: 位置 0 处 JSON 中的意外标记 i

所以可能是 JSON 解析器期望一个开头和结尾都带有" 的字符串的问题。

var data = $("#sortable").sortable('serialize');
    data=JSON.stringify(data);
    data=JSON.parse(data);
    $.each(data, function(index,  value ) {
        alert( value );
    });

但这会导致第一个 TypeError。

如何将 jQuery 可排序对象解析为数据数组?

【问题讨论】:

    标签: jquery arrays json parsing jquery-ui-sortable


    【解决方案1】:

    使用“toArray”方法代替“serialize”方法。

    var arr = $("#sortable").sortable('toArray');
    $.each(arr, function(index, value) {
        alert(value);
    });
    

    顺便说一句,以下形式的字符串不是 JSON。事实上,它甚至没有接近 JSON。

    item[]=51&item[]=41&item[]=49&item[]=35&item[]=58&item[]=45&item[]=32&item[]=36&item[]=26&item[]=27&item[]=33&item[] =31&item[]=29

    数组的 JSON 字符串如下所示:

    [51、41、49、35、58、45、32、36、26、27、33、31、29]

    【讨论】:

      猜你喜欢
      • 2015-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      相关资源
      最近更新 更多