我正在尝试创建一个包含日历(查询日期选择器)的网页,以播放存储在vimeo上的特定日期的视频。 到目前为止,我设法将我点击的日期分配给var(日期)。 现在我需要找到相应的vimeo ID到这个日期,以便将它分配给嵌入式vimeo播放器。 我认为最好的方法是阅读一个文本文件,其中包含我存储在网页文件夹中的以下内容。
......
02-04-2014_Vevey 98230271
02-05-2014_Vevey 98231062
02-06-2014_Vevey 98231771
03-04-2014_Vevey 98232437
03-05-2014_Vevey 98232658
03-06-2014_Vevey 98233405
04-04-2014_Vevey 98234165
04-05-2014_Vevey 98234754
每行包含具有相应vimeo ID的日期信息。
重点是我刚开始使用Javascript并且不知道如何发送搜索条件,逐行读取文件,从第一部分提取日期,将其与搜索条件进行比较,然后返回ID 。 有没有人愿意花点时间帮助我? 谢谢。
丹尼尔
答案 0 :(得分:0)
此处(JSBin):
// Simulating your datasource.
var data = "\
02-04-2014_Vevey 98230271\n\
02-05-2014_Vevey 98231062\n\
02-06-2014_Vevey 98231771\n\
03-04-2014_Vevey 98232437\n\
03-05-2014_Vevey 98232658\n\
03-06-2014_Vevey 98233405\n\
04-04-2014_Vevey 98234165\n\
04-05-2014_Vevey 98234754";
// Have your data as an array, split by line break
data = data.split('\n');
function search(from, to) {
from = normalize(from);
to = normalize(to);
function normalize(date) {
return '' +
date.getFullYear() +
zeroPad2(date.getMonth()+1) +
zeroPad2(date.getDate());
}
function zeroPad2(number) {
return ('00'+number).slice(-2);
}
// do the actual filtering
return data.filter(function (name) {
var date = name.match(/^(\d{2})\-(\d{2})-(\d{4})/);
date = parseInt(date[3]+date[1]+date[2], 10);
return (date <= to) && (date >= from);
});
}
// Keep in mind that months are zero-based.
var from = new Date(2014, 02, 04); // 03-04-2014
var to = new Date(2014, 03, 06); // 04-06-2014
var searchResult = search(from, to);
console.log(searchResult);
答案 1 :(得分:0)
您可以通过在其路径上执行httpXMLrequest来请求文件的完整内容(如果使用jquery,则可以使用$ .ajax),然后您可以使用一些正则表达式来处理它。
但是,如果使用xml等有条理的格式存储数据会更容易。
使用xml文件,您将能够使用xpath查询它,这样可以很容易地在文件中找到您要查找的内容。
这是确切的代码
<script type="text/javascript">
function vimeo_id_search() {
var message = document.evaluate("//VimeoIds//VimeoID[@date='04-04-2014']",document.documentElement, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
document.getElementById("info").innerHTML += message.snapshotItem(0).getAttribute("id");
}
</script>
</head>
<body>
<VimeoIds>
<VimeoID date="02-04-2014" id="Vevey 98324123">
<VimeoID date="03-04-2014" id="Vevey 23565723">
<VimeoID date="04-04-2014" id="Vevey 67578673">
<VimeoID date="05-04-2014" id="Vevey 09876542">
</VimeoIDs>
<button onclick="vimeo_id_search()">Try it</button>
<div id="info" style="background-color:#e0b0b0; width:400px"></div>
</body>
</html>
答案 2 :(得分:0)
@ Julien;尝试了你提出的解决方案,但似乎显然是错误的(见下文)。 还有一件事是&#34; date-ID&#34;数据存储在外部文件中,每天通过bash脚本(自动间隔拍摄电影生成器)更新。所以我不知何故需要将这些数据放到页面中.....
<script type="text/javascript">
function vimeo_id_search() {
var message = document.evaluate("//VimeoIds//VimeoID//@date[04-04-2014]",document.documentElement, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);document.getElementById("info").innerHTML = message;
}
</script>
</head>
<body>
<VimeoIds>
<VimeoID date="02-04-2014" id="Vevey 98324123">
<VimeoID date="03-04-2014" id="Vevey 23565723">
<VimeoID date="04-04-2014" id="Vevey 67578673">
<VimeoID date="05-04-2014" id="Vevey 09876542">
</VimeoIDs>
<button onclick="vimeo_id_search()">Try it</button>
<div id="info" style="background-color:#e0b0b0; width:400px"></div>
</body>
</html>