2016-04-07 15 views
0

を解析していない私は、バックエンドでjqueryのデータが値HTML5のデータカスタム属性

<select name="brand" class="form-control"> 
    <option value="1" data-info="[{id=1, name=detail#1}, {id=2, name=detail#2}, {id=3, name=detail#3}]">brand#1</option> 
    <option value="2" data-info="[{id=3, name=detail#3}, {id=4, name=detail#4}, {id=5, name=detail#5}]">brand#2</option> 
</select> 

を生成し、次のHTMLタグを持っている私は、ときに、ユーザーの変更オプションのデータ・情報の値にアクセスしようとしていますので、私は、このコード

を試してみてください
$('#brand').on('change', function(){ 
    var optionSelected = $("option:selected", this); 
    var info = optionSelected.data("info") 

    console.log(typeof info) 
}) 

しかし、私はtypeof情報を取得すると、私は文字列を取得し、私は必要とオブジェクト。

私はにSyntaxError取得JSON.parse(情報を)しようとした場合:JSON.parse:JSONデータの行1列3

で期待されるプロパティ名か「を}」私はこのエラーがために可能性を理解しますinfoの2つの理由がすでに解析されているか、有効なjsonではありません。

すべてのヘルプは、jQueryのJSONハンドラが唯一の有効なJSONを変換

+0

あなたが持っているJSONが無効です –

答えて

3

認識されます。そこにあるJSONは有効ではありません。具体的には、必要な見積もりがなく、:ではなく=を使用しています。それは次のようになります:

<option value="1" data-info='[{"id":1, "name":"detail#1"}, {"id":2, "name":"detail#2"}, {"id":3, "name":"detail#3"}]'>brand#1</option> 

参考のために、the JSON specです。

+0

あなたは正しいです@Ouroborus、私はちょうどバックエンドでエラーを修正しました、今あなたが提案すると私はオブジェクトを取得している –