如何使用jQuery forEach语句?

时间:2017-12-15 09:21:44

标签: javascript jquery ajax

请注意。 (我目前正在使用Spring Framework(MVC))

从Controller发送到ajax的值是......

enter image description here

如上图所示。

我正在遍历forEach语句中的数组中的值,我想将值放入标记中。

所以我写了代码。

$(function()
    {
        $('#doctorSelect').change(function()
        {
            $('#selectGugan').show();

            var doctor_idx = $(this).val();
            $.ajax
            ({
                type: 'POST',
                url: 'selectDoctor.do',
                data: {"d_idx":doctor_idx},
                dataType: 'JSON',
                success: function(sectionDate)
                {
                    console.log(sectionDate);
                    var html = "<option value=''>Choice Doctor</option>";
                    var responseData = [];
                    responseData.push(sectionDate);
                    console.log(responseData);

                    $.each(responseData, function(key, value)
                    {
                        console.log("forEach statement in responseData :" + responseData);

                        //html+="<option value="+new_date+">"+new_date+"</option>"; 
                    });
                    $('#doctorSelect_2').html(html);
                },
                error: function(sectionDate)
                {
                    console.log("data : " + sectionDate);
                }
            });
        });
    });

但出乎意料的是,我没有得到钥匙,价值。

事实上,我不知道jquery forEach语句。

如何设置键值?

我只是想带上这些价值并像这样表达。

<option value="ri_idx">ri_startDate ~ ri_endDate</option>

如何设置键,值或如何使用jquery forEach语句?

我是初学者。如果你能给我一个例子,我将不胜感激。

3 个答案:

答案 0 :(得分:1)

在你的情况下,我不确定你为什么会这样做:

responseData.push(sectionData);

因为这样你不会得到一个对象数组,因为我相信你认为你会这样,你只需要一个包含1个元素的数组,这是很多对象,所以对该数组执行forEach将无济于事,因为该值将是multiobject元素(不是您可以访问属性的单个对象)。

您要做的是迭代原始对象,因此您的代码应该是这样的:

$.each(sectionDate, function(key, value){
    // here you can access all the properties just by typing either value.propertyName or value["propertyName"]
    // example: value.ri_idx; value.ri_startDate; value.ri_endDate;
});

希望这有帮助!

答案 1 :(得分:0)

在jQuery forEach中像这样工作

$.each( obj, function( key, value ) {
  alert( key + ": " + value );
});

如果您使用的是Array for循环,则key的值为array indexvalue,如果您使用的是javascript object,则object keykey对于特定的valueobject valuekey

您可以在jQuery documentation了解更多信息。

答案 2 :(得分:0)

只需在对象中使用属性名称。 Check if this helps

$(document).ready(function() {
  var responseData = [
    {startdate: '2017-12-21', enddate: '2017-12-22', idx: '1'},
    {startdate: '2017-11-21', enddate: '2017-11-22', idx: '1'},
    {startdate: '2017-10-21', enddate: '2017-10-22', idx: '1'}
  ];
  var html = '';
  $.each(responseData, function(key, value) {
    html += "<option value=" + value.startdate + ">" + value.startdate + "</option>";
  });
  $('#doctorSelect').html(html);
});