我有一个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:不能在'中使用'运营商搜索'长度'在项目[] = 51& item [] = 41& item [] = 49& item [] = 35& item [] = 58& item [] = 45& item [] = 32& item [] = 36& item [] = 26&安培;项[] = 27&安培;项[] = 33&安培;项[] = 31&安培;项[] = 29
所以我可能需要使用JSON.parse()解析数组:
var data = $("#sortable").sortable('serialize');
data=JSON.parse(data);
$.each(data, function(index, value ) {
alert( value );
});
这将导致错误
VM327:1未捕获的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可排序对象解析为数据数组?
答案 0 :(得分:0)
使用“toArray”方法代替“serialize”方法。
var arr = $("#sortable").sortable('toArray');
$.each(arr, function(index, value) {
alert(value);
});
BTW,以下表单的字符串不是JSON。事实上,它甚至不接近JSON。
项[] = 51&安培;项[] = 41&安培;项[] = 49&安培;项[] = 35安培;项[] = 58&安培;项[] = 45安培;项[] = 32&安培;项[] = 36&安培;项[] = 26&安培;项[] = 27&安培;项[] = 33&安培;项[] = 31&安培;项[] = 29
数组的JSON字符串如下所示:
[51,41,49,35,58,45,32,36,26,27,33,31,29]