function fPrevMonth(){
  var iMon = tbSelMonth.value;
  var iYear = tbSelYear.value;
  
  if (--iMon<1) {
  iMon = 12;
  iYear--;
  }
  
  fSetYearMon(iYear, iMon);
}是不是每次调用这个函数都执行了一次--iMon?要知道这只是条件语句而已。