2016-07-21 7 views
0

更新:私はコメント内の提案を試したが、まだ動作していません。なぜ私は本当に理由が分かりません。私はそれを単一のループに統合し、記載されている構文エラーを修正しました。それが今見えるようここにコードは次のとおりです。JSONオブジェクトの特定の値をjavascript配列に追加します

$(function() { 

    $("#json-one").change(function() { 

    var $dropdown = $(this); 

    $.getJSON("washroutines.json", function(data) { 

     var vals = []; 
     var $jsontwo = $("#json-two"); 
$jsontwo.empty();   

     for (var i = 0; i < data.length; i++){ 
     if (data[i].make === $dropdown.val()) { 
      $jsontwo.append("<option value=\"" + data[i].model + "\">" + data[i].model + "</option>"); 
     } 
     } 

    }); 
    }); 

}); 

任意の追加ヘルプははるかに高く評価されるだろう!

オリジナル質問:

私は、JSONオブジェクトを使用してダウンメニュー依存のドロップを作成しようとしている、と私はトラブルの最初に基づいて投入するために2番目のメニューを取得することです。最初のメニューが変わると、2番目のメニューは "undefined"の束になります。

$.getJSON("washroutines.json", function(data) {  
     var vals = []; 

for (i = 0; i < data.length; i++){ 
if (data.make = $dropdown.val()) { 
    vals.push(data.model); 
    } 
    } 

     var $jsontwo = $("#json-two"); 
     $jsontwo.empty(); 
    for (i = 0; i < vals.length; i++){ 
    $jsontwo.append("<option value\"" + vals[i] + "\">" + vals[i] + "</option>"); 
} 

私に物事を説明するときには小さな言葉を使用してください、私はこれで新しいです! JSONの

内容:

[{"make":"Maytag","model":"Bravos","prewashCycle":"Whitest Whites"}, 
{"make":"Maytag","model":"Awesome","prewashCycle":"Awesome Whitest Whites"}, 
{"make":"Whirlpool","model":"Cabrio","prewashCycle":"Extra Heavy"}, 
{"make":"Kenmore","model":"Elite","prewashCycle":"Awesome"}] 
+0

ためのループのためにあなたを変更してみてください。 –

+0

恐らく 'data.model'は未定義ですか? – Quentin

+0

(そして、どうぞ、ネスティングがどこにあるかを明確にするためにコードをインデントしてください) – Quentin

答えて

0

は、JSON文字列/ washroutines.jsonの内容を追加してください。この

for (var i = 0; i < data.length; i++){ 
    if (data[i].make === $dropdown.val()) { 
    vals.push(data[i].model); 
    } 
} 
+0

まだ動作しません。最初のメニューが変更されたときは何もせず、2番目のメニューをクリックすると「選択してください」から空白になります。 –

+0

オプションタグにも問題があります。値のあとに '='がありません。つまり、 '<オプション値= "' + vals [i] + '">' + vals [i] + '' – ruedamanuel

+0

固定=、ありがとう! –

関連する問題