使用jquery使用选择框选项值过滤json

时间:2012-11-20 07:47:30

标签: javascript jquery html

如何根据年份过滤“Make”值。例如:当我选择“年”作为“2012”时的相关数据,即:只有“def”应显示在下拉框中。 另一个问题是,当我选择下一个值时,表中的先前数据再次显示。 请参阅演示以获得更好的理解。

我试过了。

$.each(g_Vehicle, function(index) {
 var sMake = g_Vehicle[index].Make;
  if($('#DropDown_Year').val())=='2011'){  /* for testing purpose i give year as 2011*/
   if ($.inArray(sMake, g_MakesArray) == -1) {
    g_MakesArray.push(sMake);
        } 
 }
});

DEMO

3 个答案:

答案 0 :(得分:3)

要过滤集合/数组,请使用$ .grep,要了解更多相关信息,请查看jqfaq.com文章,这将详细说明。

答案 1 :(得分:0)

function filter() {
    switch($(this).text()) {
    case "2012":
        //filter logic
        $("#dropdown2").html("<select>....</select><select>...</select>");
        break;
    ....
    }
}

$("#dropdown").change(filter);

您可以在开始时将第二个投递箱设为空,并在有人选择年份后用适当的选择填充它。

答案 2 :(得分:0)

我会将grep用于此

e.g。

var newArray = jQuery.grep(g_Vehicle , function(element, index){
  return element.Make == "abc" ; 
});