2016-06-18 13 views
0

jQueryのソート可能なリストがあり、結果をシリアライズしています。シリアル化された配列を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を使用して、各配列インデックスを選択します。だから、おそらく私はJSON.parse()を使用して、配列にそれを解析する必要が

TypeError: Cannot use 'in' operator to search for 'length' in 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

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

ますが、エラーが発生し

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

     alert(value); 
    }); 

そして、私はエラーになります

VM327:1 Uncaught SyntaxError: Unexpected token i in JSON at position 0

hat JSONパーサーは、最初と最後に"という文字列を想定しています。

しかし、これは最初のTypeErrorにつながります。

jQueryのソート可能なオブジェクトをデータ配列に解析するにはどうすればよいですか?

答えて

0

"serialize"メソッドの代わりに "toArray"メソッドを使用します。

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

A配列は次のようになりためのJSON文字列:取り組んでいる

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

+0

[OK]をクリックします。どうもありがとうございました。 – Mark

関連する問題