检查innerhtml是否已更改

时间:2016-03-11 23:45:16

标签: javascript html date datetime time

我正在为自己编写一个时钟程序,并想检查我是否已经进入。我想看看原始的html是否已经改变,因为我认为这比使用全局布尔变量更好。

我的HTML代码:

<h1 id="startTime">Start Time: </h1>
<h1 id="endTime">End Time: </h1>
<h1 id="totalHours">Total Hours: </h1>
<br>
<button class="button button1" onclick="hoursCalc()">clock in</button>

我的JS代码:

function hoursCalc() {
    var d = new Date();
    var h = d.getHours();
    if (document.getelementByID === "Start Time: ")
        document.getElementById("startTime").innerHTML += h;
    else 
        document.getElementById("endTime").innerHTML += h;
};

我遇到问题的地方是使用if语句。由于这是正在显示的确切文本,我希望它将h附加到它。相反,它会跳到else语句并将其附加到结束时间。

2 个答案:

答案 0 :(得分:0)

尝试:

var mousedragstart = mousedown.flatMap(() =>
      mousemove
         .where(x => x.movementX !== 0 || x.movementY !== 0)
         .takeUntil(mouseup)
         .take(1)
);

答案 1 :(得分:0)

你想要的是,可能是这样的:

function formatDate(date) {
    return [
       ("0" + date.getHours()).slice(-2),
       ("0" + (date.getMinutes())).slice(-2),
       ("0" + (date.getSeconds())).slice(-2)
    ].join(':');
}

var startTime;
document.getElementById("myBtn").addEventListener("click", function() {
    var d = new Date();
    if (typeof startTime === "undefined") {
        startTime = d;
        document.getElementById("startTime").innerHTML = formatDate(d);
        document.getElementById("endTime").innerHTML = '';
        document.getElementById("totalSeconds").innerHTML = '';
    } else {
        document.getElementById("endTime").innerHTML = formatDate(d);
        document.getElementById("totalSeconds").innerHTML = (d - startTime) / 1000;
        startTime = undefined;
    }
});
<h2>Start Time: <span id="startTime"></span></h2>
<h2>End Time: <span id="endTime"></span></h2>
<h2>Total Seconds: <span id="totalSeconds"></span></h2>
<button class="button button1" id="myBtn">clock in</button>

(另见this Fiddle

注意

对于我的演示,我计算了开始和结束时间之间的秒数而不是小时数,因为这在演示环境中更有意义。

如果您想要总数而不是总秒数,只需将秒数除以3600。