append js, как добавить span к элементам

222
26 февраля 2022, 13:40

Есть таймер обратного отсчета. Сейчас он работает, но выводит цифры в одном блоке, нужно что бы выводил каждую цифру отдельным блоком для оформления. Пробовал через append но получается какой то цикл...

$( document ).ready(function() {
  var banner = $("#banner-message").find('.timer');
  var timerId = setInterval(function() {
    var now = new Date();
    var d = now.getDay();
    var h = 24 - now.getHours();
    var m = 60 - now.getMinutes();
    var s = 60 - now.getSeconds();
    banner.text(d + ' : ' + h + ' : ' + m + " : " + s);
    if(d == 0 && h == 0 && m == 0 && s == 0){
           document.location.reload();
    }
  }, 1000);
});

Вот так пробовал: banner.append('<span>' + d + '</span>' '<span>' + h + '</span>' '<span>' + m + '</span>''<span>' + s + '</span>'); но консоль показывает что синтаксическая ошибка... Заранее спасибо за ответы

Answer 1

... + '</span>' '<span>' + ...

Оператор конкатенации пропущен в этих местах выражения (между двумя строковыми литералами).

Как это делается на самом деле:

// это нужно только для показа результата в сниппете 
const banner = $('#test'), 
      [d, h, m, s] = 'DD,HH,MM,SS'.split(','); 
 
// а это суть решения 
banner.append($( 
  [d, h, m, s].map(v => `<span>${v}</span>`).join('') 
));
#test span { display: inline-block; padding: 0 0.5em; border: 1px solid #ccc; }
<div id="test"></div> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


Ну и на ванильном JS, без ненужной сегодня jQuery - будет почти то же самое:

const banner = document.querySelector('#test'), 
      [d, h, m, s] = 'DD,HH,MM,SS'.split(','); 
banner.insertAdjacentHTML('beforeend', 
  [d, h, m, s].map(v => `<span>${v}</span>`).join('') 
);
#test span { display: inline-block; padding: 0 0.5em; border: 1px solid #ccc; }
<div id="test"></div>

READ ALSO
Передать src в img jquery

Передать src в img jquery

Не могу понять как прередать src img в другой блок с картинкой, в консоль лог выводится srcА в src вставляется [Object Object]

84
Почему не работает расширение?

Почему не работает расширение?

Сделал расширения для хрома, чтобы показывало количество изменений динамического z-indexПодскажите, пожалуйста, почему ругается хром, вроде...

82
Как побороть не верный length массива?

Как побороть не верный length массива?

Пример массива (вывод в консоль после заполнения):

125
jQuery: Создать div и вывести информацию в него

jQuery: Создать div и вывести информацию в него

Суть такаяЯ жму на кнопку, и происходят следующие действия:

235