2017-08-13 30 views
1

我有一個在Google Map上繪製軌道的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一些數字,做了一些計算和顯示結果。該功能完美運作。 (軌道抽屜使用orbits.js庫)。

唯一的問題是,當我的'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

您可以檢查#decayDOM元素.nextElement.textContent緊隨其後的是兩位數字,然後"-"模式使用RegExp.prototype.test()匹配四個數字後面"-"/\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>

相關問題