2016-04-06 9 views
0

私はこのはjavascriptの表記法を使用してプロパティ値を取得できませんでした

var routeId = $('#route option:selected').val(); 
console.log(routeId, routeId["id"]); 

行うと、私は以下の取得

{"id":560,"name":"Coba wei","description":"f","is_deleted":0,"operator_id":31,"from_city_id":201,"to_city_id":46} undefined 

は私が私にconsole.logの第二のparamである560を得ることができます期待結果()、しかし私は未定義になった。それはなぜそうですか?ここでこのようにすればhttps://jsfiddle.net/hfhfug0b/、私はidの価値を得ることができます。

+0

'val()'は文字列を取得します。あなたはそれをあなたのフィドルのようなオブジェクトにするために 'JSON.parse(str)'を使う必要があります。 – Andy

答えて

2

routeIdはJSONと思われます。 DOMから読み込まれ

var routeId = JSON.parse($('#route option:selected').val()); 
console.log(routeId, routeId["id"]); 
1

何が文字列です:あなたがオブジェクトに変換したい場合は、それを解析する必要があります。 JSONとして使用するには、JSON.parse()を使用して解析する必要があります。また

var routeId = JSON.parse($('#route option:selected').val()); 

、私はSelect option base on property key in value答えにお勧めしてきたように、あなたは、HTML要素のカスタムデータを格納するdata-*属性を使用して検討すべきです。

+0

'val'でも数値や配列を返すことができますが、他のオブジェクトは返さないことに注意してください。これは変換を行うjQueryです。 – Paulpro

関連する問題