javascript - 警报返回为未定义

标签 javascript undefined alert

我正在尝试让我的提醒与我的计时器显示的时间一起显示。

function Stopwatch(elem) {
  var time = 0;
  var offset;
  var interval;

  function update() {
    if (this.isOn) {
    time += delta();
  }

  elem.textContent = timeFormatter(time);
}

function delta() {
  var now = Date.now();
  var timePassed = now - offset;

  offset = now;

  return timePassed;
}

function timeFormatter(time) {
  time = new Date(time);

  var minutes = time.getMinutes().toString();
  var seconds = time.getSeconds().toString();
  var milliseconds = time.getMilliseconds().toString();

  if (minutes.length < 2) {
    minutes = '0' + minutes;
  }

  if (seconds.length < 2) {
    seconds = '0' + seconds;
  }

  while (milliseconds.length < 3) {
    milliseconds = '0' + milliseconds;
  }

  return minutes + ' : ' + seconds + ' . ' + milliseconds;
  }

  this.start = function() {
    interval = setInterval(update.bind(this), 10);
    offset = Date.now();
    this.isOn = true;
  };

  this.stop = function() {
    clearInterval(interval);
    interval = null;
   this.isOn = false;
  };

  this.reset = function() {
    time = 0;
    update();
  };

  this.isOn = false;
  }

  var timer = document.getElementById('timer');
var toggleBtn = document.getElementById('toggle');
var resetBtn = document.getElementById('reset');

var watch = new Stopwatch(timer);

function start() {
  toggleBtn.textContent = 'Stop';
  watch.start();
}

function stop() {
  toggleBtn.textContent = 'Start';
  watch.stop();
}

toggleBtn.addEventListener('click', function() {
  watch.isOn ? stop() : start();
});

resetBtn.addEventListener('click', function() {
  watch.reset();
});

function alertSystem(){
  var timer = document.getElementById('timer')
  alert(timer);
}
<h1 id="timer">00 : 00 . 000</h1>

<div>
  <button class=button id="toggle">Start</button>
  <button class=button id="reset">Reset</button>
  <button onclick='alertSystem()'>get number</button>
</div>

	    	

代码很多,但主要是让定时器工作。最后一个名为 alertSystem() 的函数位于底部,是触发警报调用的函数。对我来说,警报显示为 [object HTMLHeadingElement]undefined。前者出现在我有 alert(timer); 但如果我有 alert(timer.value);alert(timer.length); 我得到后者。

有谁知道我怎样才能在警报中获取计时器的值?


最佳答案

要获取计时器的值,您应该执行如下操作:

document.querySelector('#timer').innerHTML

否则,document.getElementById 返回一个完整的元素作为 js 对象。

关于javascript - 警报返回为未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52009647/

相关文章:

javascript - 如何从iframe中获取元素

variables - 如何检查变量是否在 Octave 中定义?

javascript - 无法设置未定义的属性标题

javascript - alert() 不适用于文档方法

javascript - 如何在调查中的地名数组中查找相同的字符串(使用javascript)

javascript - 如何根据<p>值选择下拉列表

javascript - 检查对象属性时与 undefined 或 "undefined"进行比较。有什么不同?

ios - 以编程方式关闭 iphone 低电量警报

android - 单击 ListView 项时如何关闭 AlertDialog

javascript - 如何将数据从 C++ 应用程序传递到 Javascript