This is strange... in function getNumber() the variable mostRecent is not accessing the outer variable var mostRecent.
I see in console that console.log(mostRecent) is showing mostRecent is updated, but when I do elements.mostRecent it still shows the default value.
var elements = function () {
var mostRecent = { "timeStamp" : "0" };
var timeCollection = [];
function getElements() {
var trElements = document.getElementsByTagName("tr");
for (var i = 1; i < trElements.length; ++i) {
var obj = {
"action" : trElements[i].children[5].textContent,
"timeStamp" : trElements[i].children[8].textContent
}
timeCollection.push(obj);
}
}
function getNumber() {
timeCollection.forEach(function findRecent(element) {
var timeStamp = moment(element["timeStamp"], "MMM. D, YYYY, h:m A");
var mostRecentMoment = moment(mostRecent["timeStamp"], "MMM. D, YYYY, h:m A");
if (moment(timeStamp).isAfter(mostRecentMoment)) { mostRecent = element; }
});
console.log(mostRecent);
}
function refresh() {
getElements();
getNumber();
}
return {
mostRecent : mostRecent,
refresh: refresh
}
}();
elements.refresh();