javascript 表格 操作

本文介绍如何使用JavaScript创建包含标题、表头、表体和表尾的HTML表格,并提供了遍历和操作这些元素的方法。

ie上有个Bug,js创建的table,默认给你插上了一个空的tbody,所以要移除掉这个tbody

for(var i = 0 ; i < table.childNodes.length ; i++) {
                if(table.childNodes[i].tagName == 'TBODY' && table.childNodes[i].innerHTML == '') {
                    table.removeChild(table.childNodes[i]);
                    break;
                }
            }

 

 

 

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
    </head>
    <body>
        <script>
            var frag = document.createDocumentFragment();
            var table = document.createElement('table');
            frag.appendChild(table);
           
            var caption = table.createCaption();
            caption.innerHTML = '<font color="red">我是标题,哈哈哈</font>';
            var thead = table.createTHead();
            var headrow = thead.insertRow(0);
            var c = headrow.insertCell(0);
            c.innerHTML = '表头内容1';
            c = headrow.insertCell(1);
            c.innerHTML = '表头内容2';
           
            headrow = thead.insertRow(1);
            c = headrow.insertCell(0);
            c.innerHTML = '表头内容3';
            c = headrow.insertCell(1);
            c.innerHTML = '表头内容4';

            var tbody = document.createElement('tbody');
            table.appendChild(tbody);
            var bodyrow = tbody.insertRow(0);
            c = bodyrow.insertCell(0);
            c.innerHTML = '表体内容1';
            c = bodyrow.insertCell(1);
            c.innerHTML = '表体内容2';
           
            bodyrow = tbody.insertRow(1);
            c = bodyrow.insertCell(0);
            c.innerHTML = '表体内容3';
            c = bodyrow.insertCell(1);
            c.innerHTML = '表体内容4';
           
            tbody = document.createElement('tbody');
            table.appendChild(tbody);
            var bodyrow = tbody.insertRow(0);
            c = bodyrow.insertCell(0);
            c.innerHTML = '表体内容5';
            c = bodyrow.insertCell(1);
            c.innerHTML = '表体内容6';
           
            bodyrow = tbody.insertRow(1);
            c = bodyrow.insertCell(0);
            c.innerHTML = '表体内容7';
            c = bodyrow.insertCell(1);
            c.innerHTML = '表体内容8';

            var foot = table.createTFoot();
            var footrow = foot.insertRow(0);
            c = footrow.insertCell(0);
            c.innerHTML = '表尾内容1';
            c = footrow.insertCell(1);
            c.innerHTML = '表尾内容2';
           
            footrow = foot.insertRow(1);
            c = footrow.insertCell(0);
            c.innerHTML = '表尾内容3';
            c = footrow.insertCell(1);
            c.innerHTML = '表尾内容4';
           
            for(var i = 0 ; i < table.childNodes.length ; i++) {
                if(table.childNodes[i].tagName == 'TBODY' && table.childNodes[i].innerHTML == '') {
                    table.removeChild(table.childNodes[i]);
                    break;
                }
            }
           
            document.body.appendChild(frag);
           
            alert('获得标题:' + table.caption.innerHTML);
            alert('获得表头:' + table.tHead.innerHTML);
           
            alert('对表头进行遍历');
            for(var i = 0 ; i < table.tHead.rows.length ; i++) {
                var row = table.tHead.rows[i];
                for(var j = 0 ; j < row.cells.length ; j++) {
                    alert('第' + (i+1) + '行 第' + (j + 1) + '列内容:' + row.cells[j].innerHTML);
                }
            }
            alert('对表体进行遍历:' + table.tBodies.length);
           
            for(var w = 0 ; w < table.tBodies.length ; w++) {
                tbody = table.tBodies[w];
                for(var i = 0 ; i < tbody.rows.length ; i++) {
                    var row = tbody.rows[i];
                    for(var j = 0 ; j < row.cells.length ; j++) {
                        alert('第' + (w + 1) + '个表体的第' + (i+1) + '行 第' + (j + 1) + '列内容:' + row.cells[j].innerHTML);
                    }
                }
            }
           
            alert('对表尾进行遍历:');
            for(var i = 0 ; i < table.tFoot.rows.length ; i++) {
                var row = table.tFoot.rows[i];
                for(var j = 0 ; j < row.cells.length ; j++) {
                    alert('表尾第' + (i + 1) + '行 第' + (j + 1) + '列内容:' + row.cells[j].innerHTML);
                }
            }
            /*
            alert('使用rows属性: ' + table.rows.length);
           
            setTimeout(function() {
                alert('删除标题');
                table.deleteCaption();
            } , 1000);

            setTimeout(function() {
                alert('删除表头');
                table.deleteTHead();
            }, 1000);
           
            setTimeout(function() {
                alert('删除表尾');
                table.deleteTFoot();
            }, 1000);
           
            table.deleteRow(7);
            */
            /*
            row = table.insertRow(8);
            cell = row.insertCell(0);
            cell.innerHTML = 'append1';
            cell = row.insertCell(1);
            cell.innerHTML = 'append2';
            */
            table.tFoot.deleteRow(0);
        </script>
    </body>
</html>

 

 

table.rows 返回 表头,表体,表尾所有行数之和


table.deleteRow 删除一行, 删除的是 所有的表头,表体,表尾的总和所在的行,从0开始计数

table.insertRow 插入一行,插入的是新的一行,firefox上必须提供插入行所在的位置,
                行的位置是所有的表头,表体,表尾之和的那种下标

table.tHead.deleteRow(index);
table.tBody.deleteRow(index);
table.tBodies[1].deleteRow(index);

这种方法也支持,不过删除的是指定的自身区域内的行

 

 

JavaScript可以通过DOM操作来实现对表格的增删改查操作。下面是一些常用的表格操作方法: 1. 获取表格对象 可以通过getElementById()或querySelector()等方法获取到表格对象,例如: ```javascript var table = document.getElementById("myTable"); ``` 2. 获取表格的行和单元格 可以使用表格对象的rows和cells属性来获取表格的行和单元格,例如: ```javascript var rows = table.rows; // 获取表格的所有行 var cells = rows[0].cells; // 获取第一行的所有单元格 ``` 3. 添加行和单元格 可以使用insertRow()和insertCell()方法来添加行和单元格,例如: ```javascript var row = table.insertRow(); // 在表格末尾添加一行 var cell1 = row.insertCell(); // 在行末尾添加一个单元格 cell1.innerHTML = "Cell 1"; // 设置单元格内容 var cell2 = row.insertCell(); // 在行末尾添加一个单元格 cell2.innerHTML = "Cell 2"; // 设置单元格内容 ``` 4. 删除行和单元格 可以使用deleteRow()和deleteCell()方法来删除行和单元格,例如: ```javascript table.deleteRow(0); // 删除第一行 rows[0].deleteCell(0); // 删除第一行的第一个单元格 ``` 5. 修改单元格内容 可以直接修改单元格的innerHTML属性来修改单元格内容,例如: ```javascript cells[0].innerHTML = "New Content"; // 修改第一个单元格的内容 ``` 6. 获取单元格内容 可以使用单元格的innerHTML属性来获取单元格内容,例如: ```javascript var content = cells[0].innerHTML; // 获取第一个单元格的内容 ``` 以上是一些常用的表格操作方法,可以根据具体需求进行使用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值