<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv = "Content-type" content = "text/html; charset = gb2312">
  <title>date selector</title>
  <style type = "text/css" charset = "gb2312">
  <!--
   .change
   {
    background-color: red;
   }
   table
   {
    width: 183px;
    height: 10px;
   }
   table tr
   {
    height: 10px;
    font-size: 13px;
    color: blue;
    text-align: center;
   }
   .arrowSize
   {
    font-size: 7px;
   }
   .dateSize
   {
    font-size: 12px;
   }
  -->
  </style>
 </head>
 <body>
  <table>
   <tr class = "arrowSize">
    <td><<</td>
    <td><</td>
    <td class = "dateSize">2011年12月31日</td>
    <td>></td>
    <td>>></td>
   </tr>
  </table>
  <table>
   <tr height = "20">
    <td>日</td>
    <td>一</td>
    <td>二</td>
    <td>三</td>
    <td>四</td>
    <td>五</td>
    <td>六</td>
   </tr>
   <script>
   <!--
    var print = "";
    var count = 0;
    var columnArr = new Array();
    for( var iRow = 0; iRow < 6; iRow++ )
    {
     print += "<tr>";
     for( var iCol = 0; iCol < 7; iCol++ )
     {
      count++;
      if( count < 32 )
      {
       print += "<td onmouseover=this.className='change' onmouseout=this.className='' onclick = \"alert( count );\">"
       // 为什么这里的count输出永远是一个数       +count+"</td>"; 
      }
     }
     print += "</tr>";
    }
    document.write( print );
    
    var year = 2011;
    var month = 12;
    var lastDay = new Date(year, month, 0);
    lastDay = lastDay.getDate();
    var firstDay = new Date(year, month-1, 1);
    firstDay = firstDay.getDay();
   -->
   </script>
  </table>
 </body>
</html>代码中红色字体部分就是问题了,为什么count总是同一个数字(42)。
我要得到当前的数怎么修改这个代码?比如 1,2,3,4....

解决方案 »

  1.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
    <html>
     <head>
      <meta http-equiv = "Content-type" content = "text/html; charset = gb2312">
      <title>date selector</title>
      <style type = "text/css" charset = "gb2312">
      <!--
      .change
      {
      background-color: red;
      }
      table
      {
      width: 183px;
      height: 10px;
      }
      table tr
      {
      height: 10px;
      font-size: 13px;
      color: blue;
      text-align: center;
      }
      .arrowSize
      {
      font-size: 7px;
      }
      .dateSize
      {
      font-size: 12px;
      }
      -->
      </style>
     </head>
     <body>
      <table>
      <tr class = "arrowSize">
      <td><<</td>
      <td><</td>
      <td class = "dateSize">2011年12月31日</td>
      <td>></td>
      <td>>></td>
      </tr>
      </table>
      <table>
      <tr height = "20">
      <td>日</td>
      <td>一</td>
      <td>二</td>
      <td>三</td>
      <td>四</td>
      <td>五</td>
      <td>六</td>
      </tr>
      <script>
      <!--
      var print = "";
      var count = 0;
      var columnArr = new Array();
      for( var iRow = 0; iRow < 6; iRow++ )
      {
      print += "<tr>";
      for( var iCol = 0; iCol < 7; iCol++ )
      {
      count++;
      if( count < 32 )
      {
      print += "<td onmouseover=this.className='change' onmouseout=this.className='' onclick = \"alert( "+count+" );\">"
      // 为什么这里的count输出永远是一个数 +count+"</td>";  
      }
      }
      print += "</tr>";
      }
      document.write( print );
        
      var year = 2011;
      var month = 12;
      var lastDay = new Date(year, month, 0);
      lastDay = lastDay.getDate();
      var firstDay = new Date(year, month-1, 1);
      firstDay = firstDay.getDay();
      -->
      </script>
      </table>
     </body>
    </html>
      

  2.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
    <html>
     <head>
      <meta http-equiv = "Content-type" content = "text/html; charset = gb2312">
      <title>date selector</title>
      <style type = "text/css" charset = "gb2312">
      <!--
      .change
      {
      background-color: red;
      }
      table
      {
      width: 183px;
      height: 10px;
      }
      table tr
      {
      height: 10px;
      font-size: 13px;
      color: blue;
      text-align: center;
      }
      .arrowSize
      {
      font-size: 7px;
      }
      .dateSize
      {
      font-size: 12px;
      }
      -->
      </style>
     </head>
     <body>
      <table>
      <tr class = "arrowSize">
      <td><<</td>
      <td><</td>
      <td class = "dateSize">2011年12月31日</td>
      <td>></td>
      <td>>></td>
      </tr>
      </table>
      <table>
      <tr height = "20">
      <td>日</td>
      <td>一</td>
      <td>二</td>
      <td>三</td>
      <td>四</td>
      <td>五</td>
      <td>六</td>
      </tr>
      <script>
      <!--
          var print = "";
          var count = 0;
          var columnArr = new Array();
          for (var iRow = 0; iRow < 6; iRow++) {
              print += "<tr>";
              for (var iCol = 0; iCol < 7; iCol++) {
                  count++;
                  if (count < 32) {
                      print += "<td onmouseover=this.className='change' onmouseout=this.className='' onclick = \"alert( " + count + " );\">"
                      // 为什么这里的count输出永远是一个数 +count+"</td>";  
                  }
              }
              print += "</tr>";
          }
          document.write(print);      var year = 2011;
          var month = 12;
          var lastDay = new Date(year, month, 0);
          lastDay = lastDay.getDate();
          var firstDay = new Date(year, month - 1, 1);
          firstDay = firstDay.getDay();
      -->
      </script>
      </table>
     </body>
    </html>
      

  3.   


    难道我就只是
    onclick = \"alert( count );\">"
    onclick = \"alert( " + count + " );\">"
    这样错了吗?
    那请问下闭包应该怎么做啊?
      

  4.   

    这里跟闭包应该不是同一个概念,因为你的代码都输出到页面了,js都执行完毕了。参考
    http://topic.csdn.net/u/20111126/20/90bd0aa6-9606-498d-9fa2-6023b9512b22.html