letehaha
@letehaha
Вникаю вo front-end

Почему не работает for in?

Написал таймер:
var duration = { d: 1, h: 1, m: 5, s: 5 },
				s = $('#s'),
				m = $('#m'),
				h = $('#h'),
				d = $('#d');



		if (duration.d < 10){
			d.html('0' + duration.d);
		} else{
			d.html(duration.d);
		}

		if (duration.h < 10){
			h.html('0' + duration.h);
		} else{
			h.html(duration.h);
		}

		if (duration.m < 10){
			m.html('0' + duration.m);
		} else{
			m.html(duration.m);
		}

		if (duration.s < 10){
			s.html('0' + duration.s);
		} else{
			s.html(duration.s);
		}

    setInterval(function(){

			if (duration.d < 10){
				d.html('0' + duration.d);
			} else{
				d.html(duration.d);
			}

			if (duration.h < 10){
				h.html('0' + duration.h);
			} else{
				h.html(duration.h);
			}


			if (duration.m < 10){
				m.html('0' + duration.m);
			} else{
				m.html(duration.m);
			}

			if (duration.s < 10){
				s.html('0' + duration.s);
			} else{
				s.html(duration.s);
			}

		  duration.s--;

			if (duration.s === 0){
				duration.m--;
				duration.s = 59;
				if (duration.m < 0){
					duration.h--;
					duration.m = 59;
					if(duration.h < 0){
						duration.d--;
						duration.h = 59;
						if(duration.d < 0){
							duration = 0;
						}
					}
				}
			}
		}, 1000);


Хочу избавиться от лишнего кода (этой неведомой кучи ифов) через for in
function countCheck () {
			for (var key in duration) {
			  if (duration.hasOwnProperty(key)) {
			    if (duration[key] < 10){
						duration[key].html('0' + duration[key]);
					} else{
						duration[key].html(duration[key]);
					}
			  }
			}
		}
		countCheck ();

Не работает. Объясните почему. Вроде бы гуглил, и все равно не могу найти ошибку.
  • Вопрос задан
  • 146 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
duration[key].html is not a function
Надо $('#'+key).html()
Ну и в коде обратного отсчёта у вас день почему-то из 60 часов состоит.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
teslitsky
@teslitsky
node.js developer
duration[key].html нужно заменить на d.html
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы