0

list次のコードを使用して、コンボボックスにデータを入力しようとしていますlist2:

$("#collectionPeriod").change(
    function(){
        alert('collectionPeriodIndex === ' + $(this).find('option:selected').index());
        $.ajax({
            type: "GET",
            url: "${pageContext.request.contextPath}/collectionMonitorCampus.htm",
            data: {collectionPeriodIndex: $(this).find('option:selected').index(), sYearIndexNext: $('#sYear').find('option:selected').index(), sYearVal: $('#sYear').find('option:selected').val()},
            success: function(data) {
                $("#submission").prop("disabled", false);
                $("#submission").empty();
                $("#category").empty();

                $.each($.map(data.list, function(val) {
                     $('#category').append(new Option(val,val));
                     console.log("val1 " + val);
                }));

                $.each($.map(data.list2, function(val) {
                     $('#submission').append(new Option(val,val));
                     console.log("val2 " + val);
                }));
            }
        });

    });

私が抱えている問題は、コンソールがval2値のみを出力し、val完全に無視されることです。このデータへのアクセス方法にエラーはありますか?

私のコントローラーlistであり、list2次のように定義されていますList<String> returnList = new ArrayList<String>();

私が入れているモデルlistlist1 in isMap model = new HashMap();`

ModelAndView を次のように返します。

return new ModelAndView("jsonView", model);

どんな助けでも大歓迎です!ありがとう。

4

1 に答える 1

0

.each()とはどちらも、.map()内の要素にアクセスできる関数ですdata.list.each().map()の詳細を読む

どちらか一方を使用できます。両方は必要ありません。

$.map(data.list, function(val, i) {
    $('#category').append(new Option(val,val));
    console.log("val1 " + val);
});

または

$(data.list).each(function(i, val) {
    $('#category').append(new Option(val,val));
    console.log("val1 " + val);
});

引数の順序に注意してください。.each()は とは順序が異なり.map()ます。

于 2013-03-12T19:35:55.040 に答える