2017-08-13 3 views
1

J'ai une fonction Javascript qui dessine une orbite sur une carte Google. Ceci est la fonction en question:Javascript - Ne pas exécuter la fonction si la date est passée

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); 
} 

Cela prend quelques chiffres de la classe .tle-data-main, fait quelques calculs et affiche les résultats. Cette fonction fonctionne parfaitement. (Le tiroir d'orbite utilise la bibliothèque orbits.js).

Le seul problème est que je ne veux pas exécuter cette fonction quand il y a une date dans ma section 'Decay'. S'il y a une date, je ne veux pas que la fonction s'exécute puisqu'elle s'est désintégrée. Je veux seulement qu'il fonctionne s'il n'y a pas de date.

donc mon code HTML « Decay » peut être soit ceci:

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

ou comme ceci:

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

J'ai essayé de chercher des tutoriels/exemples qui utilisent, mais ne pouvait pas trouver tout.

TL; DR Ne pas exécuter ma fonction Javascript si la date est présente.

Répondre

1

Vous pouvez vérifier #decayDOM élément .nextElement.textContent pour motif /\d{4}-\d{2}-\d{2}/ en utilisant RegExp.prototype.test() à quatre chiffres correspondent suivi par "-" suivi de deux chiffres suivis par "-" suivi de deux chiffres

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>