3
 var g_Year = [
         { Year: "2011" },
         { Year: "2011" },
         { Year: "2010" },
         { Year: "2012" },
         { Year: "2011" },
         { Year: "2012" }
];
fxnDrop = function () {
        $.each(g_Year , function (index, Ele) {
            var iYear = g_Year [index].Year,
                sHtmlYear = '<option value="' + iYear + '">' + iYear + '</option>';
            $("#DropDown_Year").each(function (index, Ele) {
                $("#DropDown_Year").append(sHtmlYear);
                if (Ele.value != iYear) {
                    $("#DropDown_Year").remove(sHtmlYear);
                }
            });
        });
}

ここで私は複数の年を持っています、私の目標はドロップダウンボックスに特定の年を1回だけ表示することです。例:2011の場合、ドロップダウンボックスに1回だけ表示する必要があります。誰かが私がこれをするのを手伝ってくれる?ドロップボックスで複数の2011値を取得しています。

4

4 に答える 4

2

このコードを試してください

var fxnDrop = function() {
    var yearsArray = [];
    $.each(g_Year, function(index) { 
        if($.inArray(+g_Year[index].Year , yearsArray) == -1){
            yearsArray.push(+g_Year[index].Year);
        }
    });
    yearsArray.sort();
    var sHtmlYear = '';
    $.each(yearsArray , function(i){
        sHtmlYear += '<option value="'+ yearsArray[i] +'">' 
                         + yearsArray[i]  + '</option>'; 
    });
     $("#DropDown_Year").append(sHtmlYear);
};

fxnDrop(); ​

フィドルをチェック

于 2012-11-08T07:22:10.117 に答える
0

Jquery.inArray()関数:for exe:-を使用できます

  var categories=[];
         if ($.inArray(value.category, categories)==-1){
        categories.push(value.category);
        }

categories必要な固有のカテゴリを保持します
更新
[SEELIVEDEMO] [2]

于 2012-11-08T07:11:01.380 に答える
0

これを試してください..@pranavで言及されているようにJquery.inArray()を使用しました

var yeararray= [];

fxnDrop = function () {
    $.each(g_Year , function (index, Ele) {
       if ($.inArray(Ele.Year, yeararray)==-1) {
        var iYear = g_Year [index].Year,
        sHtmlYear = '<option value="' + iYear + '">' + iYear + '</option>';
        $("#DropDown_Year").each(function (index, Ele) {
            $("#DropDown_Year").append(sHtmlYear);
            if (Ele.value != iYear) {
                $("#DropDown_Year").remove(sHtmlYear);
            }
        });
          yeararray.push(Ele.Year);
       }
    });
}
于 2012-11-08T07:24:48.317 に答える
0
var g_Year = [
         { Year: "2011" },
         { Year: "2011" },
         { Year: "2010" },
         { Year: "2012" },
         { Year: "2011" },
         { Year: "2012" }
];
g_Year.sort(function(o1, o2){return o1.Year > o2.Year} );

// use reduce function
var uniqueG_Year = g_Year.reduce(function(previousValue, currentValue, index, array){
  if(previousValue.length == 0 || previousValue[previousValue.length-1].Year != currentValue.Year)
    previousValue.push(currentValue);
  return previousValue;
}, []);

// or simply use filter
var uniqueG_YearFiltered = g_Year.filter(function(element, index, array){
  return (index == 0 || array[index-1].Year != element.Year)
});
于 2012-11-08T07:51:53.883 に答える