解决方案 »

  1.   

    var k=1;
    var i=1;
    var arr=[];
    for (;i<6;i++){
       arr.push('<tr>')
       for (;k<8;k++){
           arr.push("<td>"+k+","+i+"</td>");
       }
       arr.push("</tr>");
     }
    $("#three").append(arr.join(''));
      

  2.   

    循环操作html直接写入dom的话会造成大量的资源消耗。
    先拼接字符串再一次性操作HTML就会优化很多。
      

  3.   

    jquery中每次对网页元素的生成必须是完整的标签,不能像append("</tr>");生成半个标签
    你的代码可以改用document.write();输出文档流
      

  4.   

    <table width='1001' height='720' border='1' class="p2 table table-bordered" id="three"  >
    </table>
    <script language="javascript">
    $(function() { //jq 加载完成后才会被执行
      var k=1;
      var i=1;
      for (;i<6;i++) { 
        $tr = $("<tr>"); //创建一个 tr 对象
        for (k=1;k<8;k++) $tr.append("<td>"+k+","+i+"</td>"); //循环初值不能省略,否则只有一行
        $("#three tbody").append($tr); // 多一层 tbody 可以兼容 IE
      }
    });
    </script>
      

  5.   

    js中循环初值不能省略,否则只有一行。果真是这样。谢谢了。不过“多一层 tbody 可以兼容 IE”是什么意思,如果没有<thead><tfoot>,那也不用加<tbody>吧。加<tbody>会影响页面呈现速度。
    “jquery中每次对网页元素的生成必须是完整的标签”这句话对吗?append("</tr>");好像可以用啊。write()的话会覆盖原来的内容。我把字符串拼接后输出,实现了功能。
    <table width='1001' height='720' border='1' class="p2" id="three"  >
    <tbody>
    <script language="javascript">
    var k=1;
    var i=1;
    var ss="";
    for (i=1;i<6;i++)

    ss+="<tr>";
     for (k=1;k<8;k++){ss+="<td>"+k+","+i+"</td>";}  //循环初值不能省略,否则只有一行!!
    ss+="</tr>";
    }
    $("#three").append(ss);
    </script>
    </tbody></table>