我有这个代码:
var event = $("#calendar").fullCalendar( 'clientEvents');
console.log(event);
event = $.grep(event, function(n) {
return n.id == "168" || n._id == "168";
});
console.log(event);
第一个控制台.log记录一个包含 12 个对象的数组。每个对象都有 .id 和 ._id 索引,我可以看到 id 168 确实存在。不幸的是,第二个控制台.log()记录了一个空数组...我做错了什么?
我也尝试了 .filter()
event = event.filter(function(n){
return n.id === "168";
});
但我仍然得到一个空数组..
编辑:在这里你可以看到第一个控制台的图像.log()http://i61.tinypic.com/fmifiu.png如您所见,"id"索引是一个字符串。我也尝试了 === 和 ==(这应该适用于整数和字符串,因为它不比较类型)
编辑2:如果我将控制台.log(n)放在.grep过滤功能中,则控制台中不会记录任何内容。为什么??
我用一个肮脏的技巧让它工作(我仍然不知道为什么它不能以正常方式工作)。这就是代码:
setTimeout(function() {
var event = events.filter(function(n){
return n.id == "168";
});
console.log(event);
}, 100);
它以这种方式工作,但是,为什么呢?