5

これがjsonです。選択ボックスに年とメーカーを表示しています。年を選択し、その関連データをフィルター処理してグリッドに表示する必要があります。たとえば、2010 を選択して関連データを定義すると、2010. デフォルト、300 & 5000 がグリッドに表示されます。jqueryプラグインを使用せずにこれを行うのを手伝ってくれる人はいますか?

var data = [
    { Year: "2011", Make: "abc", Model: "100", SubModel: "5000", },
    { Year: "2011", Make: "abc", Model: "200", SubModel: "6000",  },
    { Year: "2010", Make: "def", Model: "300", SubModel: "5000",  },
    { Year: "2011", Make: "def", Model: "100", SubModel: "1000",  }
];

ここに私のコードがあります: http://jsfiddle.net/qK2A3/2/

4

3 に答える 3

1

私の質問への回答

function getRelated() {
        $.each(g_Vehicle, function (index) {
            var sMake = g_Vehicle[index].Make;
            if (g_Vehicle[index].Make == $('#DropDown_Make').val() && g_Vehicle[index].Year == $('#DropDown_Year').val()) {
                $(".ModelClass").html(g_Vehicle[index].Model);
                $(".SubModelClass").html(g_Vehicle[index].SubModel);
            }
        });
    };

デモ: http://jsfiddle.net/ybT7a/ 動作しています。

于 2012-11-15T07:26:10.103 に答える
0

オブジェクトの配列をループし、年が一致するオブジェクトを見つけ、そのオブジェクトを使用して HTML を解析する必要があります。これはさまざまな方法で実行できます。配列ユーティリティ メソッド$.grepを使用して配列のループを実行しています。デモでは、投稿されたデータ配列のオブジェクトから末尾のコンマを削除する必要があることに注意してください。IE は末尾のコンマを嫌い、壊れます。

var year = /*your code to retrieve year*/  2010;/* test value*/
var make= /*your code to retrieve year*/ 'def';/* test value*/

var obj=$.grep( data, function(item, idx){
    return item.Year == year && item.Make == make;
})[0];

/* create some html from the object that matches year and make*/

$('body').append('<p>Model: '+ obj.Model +', SubModel: '+obj.SubModel+'</p>');

デモ: http://jsfiddle.net/uPEQ7/

http://api.jquery.com/jQuery.grep/の API リファレンス$.grep

于 2012-11-12T05:48:35.987 に答える
0

この方法で試すことができます。

HTML コード :

<select class="target">
  <option value="2010" >2010</option>
  <option value="2011">2011</option>
</select>

JAVASCRIPTコード:

$('.target').change(function() {
  var selected_value = $(this).val();
  jQuery.each(data[0] ,function(key,val){
     if(val.Year == selected_value){
         //code to add to grid go here
     }
  })
});
于 2012-11-12T05:28:14.833 に答える