2

次のコードを使用して個別の値をドロップダウン リストに抽出しようとしていますが、一意の文字列が取り込まれません。誰か助けてください。

関数 build_refinesearch_cancer_combo() {

    $('#combolist-cancer-type').empty();
    var list = [];
    var htmlResults = '<option value="-1" selected>Select cancer type_</option>';
    for (var i = 0; i < user.length; i++) {

        CancerID = user[i].FKCancerTypeID;
        Cancer = user[i].Cancer;

       if (Cancer != list) {
         htmlResults += '<option value="' + CancerID + '">' + Cancer + '</option>';
        list = Cancer;
        }
    }
    $('#combolist-cancer-type').append(htmlResults);

}
4

2 に答える 2

2
$('#combolist-cancer-type').html(function() {
    var ret = '<option value="-1" selected>Select cancer type_</option>',
        u   = user.slice(),
        arr = [];

    (function get() {
        if (u.length) {
            var v = u.shift();
            if ( $.inArray(v.FKCancerTypeID, arr) == -1 ) {
                arr.push(v.FKCancerTypeID);
                ret += '<option value="' + v.FKCancerTypeID + '">' + v.Cancer + '</option>';
            }
            get();
        }
    }());

    return ret;
});

フィドル

于 2013-09-03T18:27:20.160 に答える
1

すでに見られた癌のリストを保持し、それらの再追加をスキップしたいようです。

その場合は、毎回リストを再割り当てしないでください。新しいものがリストにあるかどうかを確認し、そうでない場合は追加します。

var list = [];
var htmlResults = '<option value="-1" selected>Select cancer type_</option>';
for (var i = 0; i < user.length; i++) {

    CancerID = user[i].FKCancerTypeID;
    Cancer = user[i].Cancer;

    if ($.inArray(Cancer, list) < 0) {
      htmlResults += '<option value="' + CancerID + '">' + Cancer + '</option>';
      list.push(Cancer);
    }
}
于 2013-09-03T18:04:17.800 に答える