JQUERY :如何从 json 循环数组 disableTimeRanges

JQUERY : How to loop Array disableTimeRanges from json

如何显示从数组到disableTimeRanges数组的所有索引? 这是我的代码

<input id="tanggal" type="date">
<input id="horaInicio" type="text" class="time" />

<script type="text/javascript">
        $(document).ready(function() {
        $('#tanggal').on('change', function() {
            var tanggal = $(this).val();
                if(tanggal) {
                $.ajax({
                    url: '{{url("/tanggal")}}/'+encodeURI(tanggal),
                    type: "GET",
                    dataType: "json",
                    success:function(data) {
                    $.each(data, function(key, value) {
                        $('#horaInicio').timepicker('remove').timepicker({'disableTimeRanges': [ [value['dari'], value['sampai']], ] });
                        });
                    }
                });
                }
               });
            });
    </script>

索引 [0] : 3:00am, 4:00am

索引 [1] : 6:00am, 9:00am

但是我的代码只显示最后一个索引,我想显示我所有的索引。谢谢:)

您需要从 foreach 循环外部提取 '$('#horaInicio').timepicker'。

在 foreach 中构建一个数组并使时间选择器引用它。

这是因为您正在为 "each" 数组元素覆盖 disableTimeRanges 属性。所以只记录最后一个。

要解决此问题,请参阅文档中的示例:

$('#disableTimeRangesExample').timepicker({
    'disableTimeRanges': [
        ['1am', '2am'],
        ['3am', '4:01am']
    ]
});

所以首先,将来自服务器的数据转换为匹配此格式并将其放入一个新数组中。然后只需将数组传递到 'disableTimeRanges' 属性.

变化:

$.each(data, function(key, value) {
    $('#horaInicio').timepicker('remove').timepicker(
      {'disableTimeRanges': [[value['dari'], value['sampai']], ] });
});

收件人:

let exclusions = data.map(item=>[item.value['Dari'], item.value['sampan']]);
$('#horaInicio').timepicker('remove').timepicker(
          {'disableTimeRanges': exclusions });