我在服务器上有一个文本文件,其中包含事件及其目标时间的列表。它看起来如下所示:
2012/02/11-10:00:00 EventStart Red
2012/02/11-10:10:00 EventStop Green
...我需要做的是以某种方式读取文本文件,并根据当前时间选择下一个即将到来的事件,并将该事件的每个元素分配给一个变量。例如,如果当前时间是2012.02.11-10:08:00,则会创建javascript变量time = '2012/02/11-10:10:00'; title = 'EventStop'; color = 'Green';。
我可以使用以下命令来读取文本文件:
jQuery.get('schedule.txt',function(data){
alert(data);
});只是不知道从哪里开始,或者这是不是最好的开始。我确实可以控制文本文件的格式,所以修改它是一种选择。
发布于 2012-02-15 05:47:06
您说可以修改文件的内容,所以我建议将其转换为JSON (并将日期/时间分开)。
[{"date": "2012/02/11", "time": "10:00:00", "title": "EventStart", "color": "Red"}, {"date": "2012/02/11", "time": "10:10:00", "title": "EventStop", "color": "Green"}]然后,您可以使用getJSON来获取/解析它。
jQuery.getJSON('schedule.txt',function(data){
// data is an array of objects
$.each(data, function(){
console.log(this.title); // log each title
});
});在这里,你可以阅读《泰晤士报》,并找出哪个是最新的。像这样的东西应该是有效的:
if(Date.now() <= Date.parse(this.date+' '+this.time))所以,把所有这些放在一起:
jQuery.getJSON('schedule.txt',function(data){
var matchedSchedule = {};
// data is an array of objects
$.each(data, function(){
if(Date.now() <= Date.parse(this.date+' '+this.time)){
matchedSchedule = this; // If time matches, set a variable to this object
return false; // break the loop
}
});
console.log(matchedSchedule.title);
// to set a "global" variable, add it to `window`
window.eventTitle = matchedSchedule.title;
});发布于 2012-02-15 06:09:22
而不更改文本文件
$.get('sometext.txt',function(data){
var perLine=data.split('\n');
var myVars=[];
for(i=0;i<perLine.length;i++)
{
var line=perLine[i].split(' ');
myVars[i]={
'time':line[0],
'event':line[1],
'color':line[2]
}
}
console.log(myVars);
console.log(myVars[0].time);
console.log(myVars[0].event);
console.log(myVars[0].color);
});发布于 2012-02-15 05:43:24
听起来你已经完成了最难的部分。现在只需解析返回的数据。
jQuery.get('schedule.txt',function(data){
yourParseFunction(data);
});https://stackoverflow.com/questions/9284558
复制相似问题