Javascript乘法表

时间:2014-09-23 20:38:40

标签: javascript for-loop

我正在尝试创建一个显示nn表的表格,其中包含以下详细信息:

  • 尺寸(n)由用户输入确定
  • 我想将偶数行的颜色编码为某种颜色和奇怪的另一种颜色
  • 结果将弹出一个新窗口/标签

这是我到目前为止所做的:

HTML:

<body>
    <form name="f"> 
        <input type="text" value ="r" size="6" name="r">
        <input type="text" value ="c" size="6" name="c">
        <input type="button" value="make table" onclick="happy(r.value,c.value)">
    </form>
</body>

JS:

function happy(rows, cols) {
    var hcode = '';

    w=window.open();
    w.document.write("<table border='1'>");
    for (i=0; i<=rows; i++) {
        w.document.write("<td>"+i)
    }

    for (j=1; j<=cols; j++) {
        var x = 0;
        w.document.write("<tr><td>"+j);
        //w.document.write("<td>"+j*x);
    }

    w.document.write("<tr>")
    for ( x=1; x<= rows; x++) {
        w.document.write("<tr>");

        for ( n=1; n<= cols; n++) {
            if (x %2==0 ) {
                w.document.write("<td bgcolor='aquamarine'>"+x*n+"</td>");
                if ( n<=cols) {
                    w.document.write()
                }
            }
            else {
                w.document.write("<td bgcolor='coral'>"+x*n+"</td>");
            }
        }
    }
    w.document.write('</table')

我玩过一些变化,但没有一个导致我需要的东西。欢迎任何和所有建议!谢谢!

2 个答案:

答案 0 :(得分:0)

我试图了解需要。

http://jsfiddle.net/OxyDesign/kb294v6a/

这是你想要的吗?

JS(使用jQuery)

$(document).ready(function(){
    makeTable();
    $('form').on('submit',function(e){
        e.preventDefault();
        makeTable();
    });
});

function makeTable(){
    var rows = parseInt($('input[name=r]').val()),
        col = parseInt($('input[name=c]').val());

    if(typeof rows === 'number' && rows > 0 && typeof col === 'number' && col > 0){
        var table = '<table>';
        for(var i = 1; i <= rows; i++){
            table += '<tr>';
            for(var j = 1; j <= col; j++){
                table += '<td>'+i*j+'</td>';
            }
            table += '</tr>';
        }
        table += '</table>';
        $('#table').html(table);
    }
}

答案 1 :(得分:0)

如果您只是在寻找一个基本的乘法表,您可以在其中设置每一行的样式,这应该可以完成这项工作:

function multiplicationTable(x, y){
  var Y = typeof y === 'number' ? y : x;
  var table = '<table><tbody>';
  for(var i=0,l=Y+1; i<l, i++){
    table += i%2 === 0 ? "<tr class='odd'>" : "<tr class='even'>";
    table += '<th>'+i+'</th>';
    for(var n=1,c=x+1; n<c; n++){
      if(i === 0){
       table += '<th>'+n+'</th>';
      }
      else{
        table += '<td>'+i*n+'</td>';
      }
    }
    table += '</tr>';
  }
  return table + '</tbody></table>';
}
document.getElementById('id').innerHTML = multiplicationTable(12);
console.log(multiplicationTable(15, 25));