我的全日历只列出了 3 个事件中的 1 个,我有 for 循环?

我放在上下文中 我有我的完整日历,它只列出了 1 个事件,没有列出其他事件 我已经查看了代码,也许我需要一些逻辑,但我找不到正在发生的事情,然后我附上代码和解释


 /*  Initialize the calendar  */

        var ide = document.getElementsByName("id");

        var fecha = document.getElementsByName("fecha");

        var nombre = document.getElementsByName("nombre");

        var horaInicio = document.getElementsByName("horaInicio");

        var horaFin = document.getElementsByName("horaFin");

        var id="";

        var dia = "";

        var titulo = "";

        var inicio = "";

        var fin = "";


        var date = new Date();

        var d = date.getDate();

        var m = date.getMonth();

        var y = date.getFullYear();

        var form = '';

        var today = new Date($.now());

        var citas=[];

       for (var x = 0; x < nombre.length; x++) {

            var defaultEvents =[{

                    id: id + ide[x].value,

                    title: titulo + nombre[x].value,

                    start: dia + fecha[x].value + 'T' + inicio + horaInicio[x].value,

                    end: dia + fecha[x].value + 'T' + fin + horaFin[x].value

                }];

                citas.push(defaultEvents);

            } 


            var $this = this; 

            for (var i=0;i<citas.length;i++){

            $this.$calendarObj = $this.$calendar.fullCalendar({

                events: citas[i]

            });

            }

一开始,我收集来自我的 jsp 文件的值,我创建了一个 for 循环,我在其中创建了一个对象,在这个对象中,每个事件都发生了,然后我将它们添加到一个名称数组 (citas) 中,这将在我的控制台中成为我的结果

http://img.mukewang.com/648ade1c00013a3403700111.jpg

这是它在我的控制台上显示的内容。在此之后我做了另一个 for 循环,它必须通过调用数组并列出每个位置来列出每个事件,结果它列出了 3 个事件中的 1 个

http://img4.mukewang.com/648ade2a0001155706490491.jpg


繁星淼淼
浏览 88回答 1
1回答

繁花不似锦

我可以看到两个逻辑错误:1)var defaultEvents =[{ ... }]这将创建一个数组,其中包含一个对象。然后将此数组推入citas数组。因此,您的事件结构是一组数组(其中每个数组包含一个对象)。但是 fullCalendar 需要一组对象。所以把这个改成var defaultEvents = { ... }反而。2)for (var i=0;i<citas.length;i++){&nbsp; &nbsp; $this.$calendarObj = $this.$calendar.fullCalendar({&nbsp; &nbsp; &nbsp; &nbsp; events: citas[i]&nbsp; &nbsp; });}这是没有意义的。您的代码在这里说的是“遍历 citas 数组。对于数组中的每个项目,重新声明$calendarObj为一个新日历并将下一个数组citas作为事件”。如您所见,这每次都会覆盖您的日历,因此您最终会得到一个日历,其中包含您添加到 citas 的最后一个数组条目——正如我们所见,它只包含一个事件。如果您进行了我在第 1 点中提到的更改,那么设置您的日历以包含所有事件就变得微不足道了——只需将上面的代码更改为:$this.$calendarObj = $this.$calendar.fullCalendar({&nbsp; &nbsp; events: citas});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript