Javascript - 如果存在过去的日期,则不要运行函数



我有一个Javascript函数,可以在谷歌地图上绘制一个轨道。这是有问题的函数:

var stations;
var sats = [];
var lines = [];
var i = 0;
$('.tle-data-main').each(function() {
lines.push(this.innerText);
});
var data = lines.join("n");
stations = orbits.util.parseTLE(data);
for (; i < stations.length; i++) {
var name = stations[i].name;
var satOpts = {
map: map,
tle: stations[i],
pathLength: 3,
};
var sat = new orbits.Satellite(satOpts);
sat.refresh();
sat.refresh_path();
sats.push(sat);
}

这从类.tle-data-main中获取一些数字,进行一些计算并显示结果。该功能完美运行。(轨道抽屉使用轨道.js库(。

唯一的问题是,当我的"衰减"部分中存在日期时,我不想运行此功能。如果有日期,我不希望函数运行,因为它已经衰减了。我只希望它在没有日期的情况下运行。

所以我的"衰减"HTML可以是这样的:

<li><span id="decay">Decay: </span>2017-07-03</li>

或者像这样:

<li><span id="decay">Decay: </span>In Orbit (No Decay Date)</li>

我试图寻找一些使用它的教程/示例,但找不到任何教程/示例。

TL;DR如果存在日期,请不要运行我的 Javascript 函数。

#decayDOM您可以使用RegExp.prototype.test()匹配四位数字后跟"-"后跟两位数字,后跟"-"两位数字来检查元素.nextElement.textContent的模式/d{4}-d{2}-d{2}/

if (/d{4}-d{2}-d{2}/.test($("#decay")[0].nextSibling.textContent)) {
console.log("do not run function")
} else {
// do stuff
console.log("run function")
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><span id="decay">Decay: </span>2017-07-03</li>
</ul>

if (/d{4}-d{2}-d{2}/.test($("#decay")[0].nextSibling.textContent)) {
console.log("do not run function")
} else {
// do stuff
console.log("run function")
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><span id="decay">Decay: </span>In Orbit (No Decay Date)</li>
</ul>

最新更新