Обновление отдельных тегов span, начиная с x секунд

0

У меня есть несколько тегов <span>, содержащих секунды.
Пример:
<span class="timeout">27</span>
<span class="timeout">58</span>

Я пытаюсь увеличить их на 1 секунду каждый раз, но у меня возникают некоторые трудности, а именно, он помещает неправильные данные в теги <span>.

Я должен делать что-то неправильно, ниже код, который я пытаюсь использовать.
Это должно быть неправильно и полно ошибок, но хорошо, я все еще пытаюсь это изучить ;-)

function timer() {
    var self = $(this);
    var idx  = $("span.timeout");
    var sec = parseInt(self.find('span.timeout').text())
    var interval = setInterval(function() {
        idx.each(function() {
            idx.text(sec++)
        });
    }, 1000);
}

Заранее спасибо,
Роберт.

Теги:

1 ответ

1
Лучший ответ

Вы хотите сделать это так:

function timer() {
    var self = $(this);
    var idx = $("span.timeout");
    //console.log(self.find('span.timeout').text()); //gets you nothing
    var interval = setInterval(function () {
        idx.text(function (_, txt) { //use .text()
            return parseInt(txt, 10) + 1; //convert the current text to int and increment it.
        });
    }, 1000);
}

скрипка

Ваша проблема здесь: var sec = parseInt(self.find('span.timeout').text()) сам это ничего, кроме окна в вашем случае, и вы пытаетесь найти в них var sec = parseInt(self.find('span.timeout').text()) и получать его текст. Что вам ничего не дает, и вы делаете parseInt ни на что, что вы получаете NAN а затем используете его для вычисления, что неверно. Таким образом, вы можете использовать обратный вызов текстовой функции и получать текущее текстовое значение этого диапазона, а затем возвращать обновленное значение для этого диапазона.

  • 0
    Добавление пояснения $ ("span.timeout") Возвращает коллекцию, не являющуюся единственным элементом, вам нужно перебрать их, используя .each ():
  • 0
    Старый добрый ответ с кодом сначала отредактируйте, чтобы объяснить позже :)
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню