Оповещение возвращается как неопределенное

Я пытаюсь сделать так, чтобы мое предупреждение отображалось в соответствии со временем, которое показывает мой таймер.

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);, я получаю второе.

Кто-нибудь знает, как я могу просто получить значение таймера в предупреждении?


Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
163
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы получить значение таймера, вы должны сделать что-то вроде:

document.querySelector('#timer').innerHTML

В противном случае document.getElementById возвращает полный элемент как объект js.

Это входит в оповещение, верно? Это сработало! Большое спасибо.

Jonathan Fascetti 24.08.2018 20:13

Другие вопросы по теме