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

时间:2017-08-13 20:13:30

标签: javascript jquery html

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

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中获取一些数字,进行一些计算并显示结果。该功能完美无缺。 (轨道抽屉使用orbits.js库)。

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

所以我的'Decay'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函数。

1 个答案:

答案 0 :(得分:1)

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

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>