<table border=2>
<tr>
<script language="javascript" type="text/javascript">
var a=prompt("请输入你要得运算到的数");
var b=parseInt(a);
for(var c=1;c<=b;c++)
{
for(var d=1;d<=c;d++)
{
var e=d*c;
var f =(c==d)?1:0;
if(f==1)
{
document.write("<tr><td>"+d+"*"+c+"="+e+"</td></tr>");
}
else if(f==0)
{
document.write("<td>"+d+"*"+c+"="+e+"</td>");
}


}

}


</script>
</tr>
</table>

解决方案 »

  1.   

    问题出在这儿:if(f==1) //如果乘数与被乘数相等

      document.write(" <tr> <td>"+d+"*"+c+"="+e+" </td> </tr>"); //<tr><td>……</td></tr>这是单独的一行了
    } 改成  document.write(" <td>"+d+"*"+c+"="+e+" </td> </tr> <tr>"); //把<tr>放到最后,写完本行再开始新的一行就OK了
      

  2.   

     <table border="2">            <script language="javascript" type="text/javascript">
                var a=prompt("请输入你要得运算到的数");
                var b=parseInt(a);
                for(var c=1;c <=b;c++)
                {
                    document.write("<tr>");
                    for(var d=1;d <=c;d++)
                    {
                        var e=d*c;
                        document.write(" <td>"+d+"*"+c+"="+e+" </td>");
                    } 
                    document.write("</tr>");
                }
                </script>        </table>
      

  3.   

    还有个问题,就是在f==1的情况下,如果到最后一行的最后一格的时候,会生成一个空行(虽然页面上看不出来,但是是实际存在的)
    所以判断部分可以改为: if(f==1 && c!=b) 

    document.write(" <td>"+d+"*"+c+"="+e+" </td> </tr> <tr>"); 

    else

    document.write(" <td>"+d+"*"+c+"="+e+" </td>"); 

      

  4.   

    or
    <table border=2> 
    <tr> 
    <script language="javascript" type="text/javascript"> 
    var a=prompt("棟入`O要得ミ庶Z到的数"); 
    var b=parseInt(a); 
    for(var c=1;c <=b;c++) 

    for(var d=1;d <=c;d++) 

    var e=d*c; 
    var f =(c==d)?1:0; 
    document.write(" <td>"+d+"*"+c+"="+e+" </td>"); 
    if(f==1) 

    document.write("  </tr><tr>"); 
    }
    } } 
    </script> 
    </tr> 
    </table>