【问题标题】:How to get the title of a Google Calendar's event?如何获取 Google 日历活动的标题?
【发布时间】:2014-11-13 10:21:58
【问题描述】:

我正在尝试解析 Google 日历提要中的条目,但到目前为止我无法检索标题,我希望有人能给我建议。从我在 firebug 中看到的内容,我无法理解为什么以下内容不起作用,因为我使用 each 方法遍历条目,如下所示:

$.getJSON("https://www.google.com/calendar/feeds/cide.edu_sm151i2pdhu2371vq8hamcver4@group.calendar.google.com/public/full?q="+encodeURI($(this).val()), {"alt" : "json"}, function(data) {
    $.each(data.feed.entry, function(i, entry) {
        var key = entry.gd$when[0].startTime.substr(0, 10);
        if(key in SelectedDates == false) {
            SelectedDates[key] = [];    
        }
        else {
            var titulo = escape(this.title.$t);
            SelectedDates[key].push(titulo);    
        }
    });
});

我之前将 SelectedDates 定义为一个数组,但是每当我提出请求时,SelectedDates 数组都包含键,但其中只有空白数组,如下所示:2014-02-04 [] 我希望我能掌握如何传递标题事件到对象。

【问题讨论】:

标签: javascript jquery google-calendar-api


【解决方案1】:

问题在于 javascript 中的空数组 == false。

改变这个:

if(key in SelectedDates == false) {

if(key in SelectedDates === false) {

编辑:

空数组不是假的,但在明确检查时确实等同于假

https://medium.com/@daffl/javascript-the-weird-parts-8ff3da55798e

【讨论】:

  • 我相信空数组是真实的。如果你在 Chrome 的 JS 控制台中输入这个,它会吐出“truthy”: if ([]) { console.log('truthy'); }
  • 在您的控制台中尝试[] == false
  • 现在你难倒我了。 [] == false 确实在 JS 控制台中结果为 true,但是,如果 ([]) { console.log('truthy'); } 呈现“真实”。
  • 我也看到了。非常奇怪的行为!
  • 非常感谢,它成功了,我也意识到我的代码中的逻辑是错误的,我不得不删除 else 语句并将其仅保留在 var titulo = escape(this.title.$t); SelectedDates[key].push(titulo); 中才能正常工作
猜你喜欢
  • 2018-06-12
  • 1970-01-01
  • 1970-01-01
  • 2014-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多