Как изменить цвет фрагментов объединенной строки в JavaScript?

#css

#CSS

Вопрос:

Я хочу создать строку в JavaScript, в которой указано текущее время, но я хочу, чтобы часы, минуты и секунды были явно разделены двоеточием. Части должны быть другого цвета, чем числа, созданные с помощью JavaScript.

Следуя базе, с которой я хочу работать.

JS

 var currentTime = document.getElementById('time');  function setTime() {  var date = new Date();  var s = date.getSeconds();  var m = date.getMinutes();  var h = date.getHours();   if (s lt; 10) {  s = '0'   s;  }  if (m lt; 10) {  m = '0'   m;  }  if (h lt; 10) {  h = '0'   h;  }   currentTime.textContent = h   ':'   m   ':'   s; }  setInterval(setTime, 100);  

HTML

 lt;h1 id="time"gt;lt;/h1gt;  

CSS

 #time {  margin-top: 7rem;  margin-bottom: 1rem;  font-size: 3.2rem;  color: #60D291; }  

Ответ №1:

Вы можете попробовать это :

 var currentTime = document.getElementById("time"); var span = document.getElementsByTagName("span"); function setTime() {  var date = new Date();  var s = date.getSeconds();  var m = date.getMinutes();  var h = date.getHours();  if (s lt; 10)  s = "0"   s;  if (m lt; 10)  m = "0"   m;  if (h lt; 10)  h = "0"   h;   span[0].textContent = h;  span[1].textContent = " : "   m;  span[2].textContent = " : " s;   span[0].style.color = "red";  span[1].style.color = "green";  span[2].style.color = "blue";  }   setInterval(setTime, 100); 
 #time {  margin: 1rem;  margin-top: 7rem;  font-size: 3.2rem;  color: #60D291; } 
 lt;!DOCTYPE htmlgt; lt;htmlgt;  lt;headgt;  lt;meta charset="utf-8"gt;  lt;meta name="viewport" content="width=device-width, initial-scale=1"gt;  lt;style type="text/css"gt;  #time {  margin: 1rem;  margin-top: 7rem;  font-size: 3.2rem;  color: #60D291;  }  lt;/stylegt;  lt;/headgt;  lt;bodygt;  lt;h1 id="time"gt;  lt;spangt;lt;/spangt;lt;spangt;lt;/spangt;lt;spangt;lt;/spangt;  lt;/h1gt;  lt;/bodygt; lt;/htmlgt; 

Комментарии:

1. лучше использовать класс или идентификатор в каждой части промежутка времени вместо промежутка[n], вы можете использовать lt;класс промежутка=»час»gt; и отдельный css для каждого класса или идентификатора

Ответ №2:

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

 let hour = document.getElementById('hour'); let min = document.getElementById('min'); let sec = document.getElementById('sec');  function setTime() {  const date = new Date();  const s = date.getSeconds().toLocaleString('en-US', { minimumIntegerDigits: 2 });  const m = date.getMinutes().toLocaleString('en-US', { minimumIntegerDigits: 2 });  const h = date.getHours().toLocaleString('en-US', { minimumIntegerDigits: 2 });   hour.textContent = h   ' :';  min.textContent= m   ' :';  sec.textContent = s; }  setInterval(setTime, 100); 
 #time {  margin: 1rem;  font-size: 3.2rem; }  #hour {  color: red; }  #min {  color: green; }  #sec {  color: blue; } 
 lt;h1 id="time"gt;  lt;span id="hour"gt;lt;/spangt;  lt;span id="min"gt;lt;/spangt;  lt;span id="sec"gt;lt;/spangt; lt;/h1gt;