我14歲的兒子正在研究一個科學項目,研究反應時間和年齡。他正在設置一個小型的網絡應用程序來測試人們 - 當一個頁面被加載時,一個計時器啓動並且出現一個STOP按鈕的延遲(本例爲4秒)。當他們點擊停止按鈕時,計時器停止。 到目前爲止,他完成了所有這些編碼工作。他正在使用他發現的一段JavaScript,並根據自己的需要對其進行了修改。
他的問題 - 如何將停止的時間傳遞給一個變量,然後將其傳遞給另一個頁面。如果變量是靜態的,即「你好」,他能夠成功地做到這一點。 函數stop()有什麼問題;在這個例子中?他目前得到[object HTMLSpanElement]將JavaScript值變爲變量
var clsStopwatch = function() {
// Private vars
var startAt = 0; // Time of last start/resume. (0 if not running)
var lapTime = 0; // Time on the clock when last stopped in milliseconds
var now = function() {
return (new Date()).getTime();
};
// Public methods
// Start or resume
this.start = function() {
startAt = startAt ? startAt : now();
};
// Stop or pause
this.stop = function() {
// If running, update elapsed time otherwise keep it
lapTime = startAt ? lapTime + now() - startAt : lapTime;
startAt = 0; // Paused
};
// Reset
this.reset = function() {
lapTime = startAt = 0;
};
// Duration
this.time = function() {
return lapTime + (startAt ? now() - startAt : 0);
};
};
var x = new clsStopwatch();
var $time;
var clocktimer;
function pad(num, size) {
var s = "0000" + num;
return s.substr(s.length - size);
}
function formatTime(time) {
var h = m = s = ms = 0;
var newTime = '';
h = Math.floor(time/(60 * 60 * 1000));
time = time % (60 * 60 * 1000);
m = Math.floor(time/(60 * 1000));
time = time % (60 * 1000);
s = Math.floor(time/1000);
ms = time % 1000;
newTime = pad(h, 2) + ':' + pad(m, 2) + ':' + pad(s, 2) + ':' + pad(ms, 3);
return newTime;
}
function update() {
$time.innerHTML = formatTime(x.time());
}
function start() {
$time = document.getElementById('time');
update();
clocktimer = setInterval("update()", 1);
x.start();
$(document).ready(function() { $('#mybutton').delay(4000).fadeIn(0);});
}
function stop() {
x.stop();
//var varTime = "Hello";
var varTime = document.getElementById('time');
window.location.href = "somephpfile.php?etime=" + varTime;
}
試試看:'VAR varTime =的document.getElementById( '時間')的innerText;' – Rayon
當前的varTime會返回一個對象(我相信這是一個DIV或P)。你必須使用.innerText來獲取對象內的文本值:)。希望這可以幫助 –