新手问题(在js中实现表格效果)

这种表格在js中用循环怎么实现?在HTML中一行一行的敲很累图片说明图片

你这个涉及到行列合并的问题,不是很规则的表格,所以用js循环实现不了,要是非得通过js实现的话就很麻烦,不如直接html来的快

一行一行敲吧,也不算太多了,哈哈

你的数据结构呢。。也不是很难,也就8x8的表格,上午,下午,周日这种都有固定的rowspan,colspan了,只需要要循环也就是里面的科目而已


<script>
    var data = [
        ['星期一上午第1节课', '星期一上午第2节课', '星期一上午第3节课', '星期一上午第4节课', '星期一上午第5节课', '星期一上午第6节课'],
        [],//星期二的依次类推,下面的也是,注意课程位置,没有放个空字符或者false占位
        [],
        [],
        [],
        []];
</script>
<table border="1">
    <tr><th>项目</th><th colspan="5">上课</th><th colspan="2">休息</th></tr>
    <tr><th>星期</th><th>星期一</th><th>星期二</th><th>星期三</th><th>星期四</th><th>星期五</th><th>星期六</th><th>星期日</th></tr>
    <tr><td rowspan="4">上午</td>
    <script>//输出第一节课
            for (var i = 0; i < 6; i++) document.write('<td>'+(data[i][0]||'未安排')+'</td>');
    </script>
    <td rowspan="4">休息</td></tr>
    <script>
        var s = '';
        //输出上午的3节课
        for (var j = 1; j < 4; j++) {
            s += '<tr>';
            for (var i = 0; i < 6; i++) s += '<td>' + (data[i][j] || '未安排') + '</td>';
            s += '</tr>';
        }
        document.write(s);
    </script>
    <tr><td rowspan="2">下午</td>
    <script>
        s = '';
        //输出下午第5节课
        for (var i = 0; i < 6; i++) document.write('<td>' + (data[i][4] || '未安排') + '</td>');
    </script>
    <td rowspan="2">休息</td></tr>
    <script>
        var s = '';
        //输出上午的最后节课
            s += '<tr>';
            for (var i = 0; i < 6; i++) s += '<td>' + (data[i][5] || '未安排') + '</td>';
            s += '</tr>';

        document.write(s);
    </script>
</table>

一般是从数据库中取出来的,,

关于JS中建立表格的话,一种就是一楼的做法,另外一种是直接$("id").append(此处拼接HTML代码,也就是你的要显示的table数据);