用DOM动态控制表格

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>用DOM动态控制表格</title>
</head>
<body>
<script language="javascript">
    counter = 1;
    // 插入数据
    function insertData()
    {
        var oStudentsTable = document.getElementById("students");
        var oTrHang = oStudentsTable.insertRow(oStudentsTable.rows.length); //插入一行
        var aText = new Array();
        aText[0] = document.createTextNode("王" + (counter++));
        aText[1] = document.createTextNode("B072");
        aText[2] = document.createTextNode("女");
        aText[3] = document.createTextNode("1025");
        aText[4] = document.createTextNode("13663616963");
        for(var i=0; i<aText.length; i++)
        {
            var oTd = oTrHang.insertCell(i); //插入一个单元格
            oTd.appendChild(aText[i]);
        }
    }
    // 编辑单元格数据
    function editData()
    {
        var oTable = document.getElementById("students");
        oTable.rows[1].cells[0].innerHTML += "Chf";
    }
    //添加删除数据的列
    function insertDeleteCell()
    {
        var oTable = document.getElementById("students");
        var oTh = oTable.rows[0].insertCell(oTable.rows[0].cells.length);
        oTh.innerHTML = "<font style=‘font-weight: bold;‘>操作</font>";
        for(var i=1; i<oTable.rows.length; i++)
        {
            var oTd = oTable.rows[i].insertCell(oTable.rows[i].cells.length);
            oTd.innerHTML = "<a href=‘#‘ onclick=‘myDeleteRow(this)‘>Delete</a>";
        }
    }
    //添加拥有一个输入框的列
    function insertInputCell() {
        var oTable = document.getElementById("students");
        var oTh = oTable.rows[0].insertCell(oTable.rows[0].cells.length);
        oTh.innerHTML = "<font style=‘font-weight: bold;‘>输入</font>";
        for(var i=1; i<oTable.rows.length; i++)
        {
            var oTd = oTable.rows[i].insertCell(oTable.rows[i].cells.length);
            oTd.innerHTML = "<input type=\"text\" style=\"background:#C0F2F3;margin-left:8px;width:10px;height:10px;\" />"
        }
    }
    //删除行
    function myDeleteRow(theDel)
    {
        theDel.parentNode.parentNode.parentNode.removeChild(theDel.parentNode.parentNode);
    }
    //删除所有行
    function deleteAllRows()
    {
        var studentsTable = document.getElementById("students");
        while(studentsTable.rows.length > 1)
        {
            studentsTable.deleteRow(studentsTable.rows.length - 1);
        }
    }
    //对表格的行进行排序
    function sortByBirthday()
    {
        var studentsTable = document.getElementById("students");
        // 获取所有学生数据行
        /**
        var studentsRowsData = new Array();
        for(var i=1; i<studentsTable.rows.length; i++)
        {
            // 以这种方式获取表格的所有行,但是通过deleteRow方法删除表格的行,会导致获取的行成为空行<tr></tr>
            // studentsRowsData[i-1] = studentsTable.rows[i];
        }
        **/
        var studentsRows = new Array();
        for(var i=1; i<studentsTable.rows.length; i++)
        {
            studentsRows[i-1] = studentsTable.rows[i];
        }

        // ---------- 排序 Begin ----------
        for(var i=0; i<studentsRows.length-1; i++)
        {
            for(var j=i+1; j<studentsRows.length; j++)
            {
                var iBirth = Number(studentsRows[i].cells[3].firstChild.nodeValue);
                var jBirth = Number(studentsRows[j].cells[3].firstChild.nodeValue);
                if(iBirth > jBirth)
                {
                    var temp = studentsRows[i];
                    studentsRows[i] = studentsRows[j];
                    studentsRows[j] = temp;
                }
            }
        }

        // ---------- 排序 End ----------

        /**
        // 删除表格中的所有学生数据行,保留行首
        while(studentsTable.rows.length > 1)
        {
            studentsTable.deleteRow(studentsTable.rows.length - 1);
        }
        **/

        var studentsSortedTable = document.getElementById("students_sorted");
        // 先清空存放排序后学生信息的表格
        while(studentsSortedTable.rows.length > 1)
        {
            studentsSortedTable.deleteRow(studentsSortedTable.rows.length - 1);
        }
        for(var i=0; i<studentsRows.length; i++)
        {
            var newRow = studentsSortedTable.insertRow(studentsSortedTable.rows.length);
            var sortedCells = studentsRows[i].cells;
            for(var j=0; j<sortedCells.length; j++)
            {
                var newCell = newRow.insertCell(newRow.cells.length);
                newCell.innerHTML = sortedCells[j].innerHTML;
            }
        }
        studentsSortedTable.style.display = "inline";
    }
</script>
    <h3>用DOM动态控制表格</h3>
    <input type="button" onclick="insertData()" value="插入一行数据" />
    <input type="button" onclick="editData()" value="修改单元格数据" />
    <input type="button" onclick="insertDeleteCell()" value="动态添加删除列" />
    <input type="button" onclick="insertInputCell()" value="动态添加输入框列" />
    <input type="button" onclick="deleteAllRows()" value="删除所有行保留行首" />
    <input type="button" onclick="sortByBirthday()" value="按生日进行排序" />
    <p></p>

    <table id="students" border="1">
      <caption>
        <h3>学生列表</h3>
      </caption>
      <tr>
        <th scope="col">姓名</th>
        <th scope="col">学号</th>
        <th scope="col">性别</th>
        <th scope="col">生日</th>
        <th scope="col">联系方式</th>
      </tr>
      <tr>
        <td>陈</td>
        <td>B073</td>
        <td>男</td>
        <td>1126</td>
        <td>15915554615</td>
      </tr>
      <tr>
        <td>王</td>
        <td>B071</td>
        <td>女</td>
        <td>0304</td>
        <td>13054115694</td>
      </tr>
      <tr>
        <td>曹</td>
        <td>B070</td>
        <td>男</td>
        <td>0815</td>
        <td>1381377894</td>
      </tr>
      <tr>
        <td>郑</td>
        <td>B078</td>
        <td>男</td>
        <td>1019</td>
        <td>1322377896</td>
      </tr>
    </table>
    <p></p>
    <table id="students_sorted" border="1" style="display:none">
      <caption>
        <h3>排序后的学生列表</h3>
      </caption>
      <tr>
        <th scope="col">姓名</th>
        <th scope="col">学号</th>
        <th scope="col">性别</th>
        <th scope="col">生日</th>
        <th scope="col">联系方式</th>
      </tr>
    </table>
</body>
</html>
时间: 2024-11-08 18:49:10

用DOM动态控制表格的相关文章

DOM操作表格

前面的话 表格table元素是HTML中最复杂的结构之一.要想创建表格,一般都必须涉及表示表格行.单元格.表头等方面的标签.由于涉及的标签多,因而使用核心DOM方法创建和修改表格往往都免不了要编写大量的代码.本文将详细介绍DOM操作表格的属性和方法 需求 要通过DOM实现下列格式的表格结构 <table border = "1" width = "100%">     <tbody>         <tr>           

19.DOM操作表格及样式

DOM操作表格及样式 学习要点:1.操作表格2.操作样式 DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本章主要了解一下DOM操作表格和样式的一些知识. 一.操作表格<table>标签是HTML中结构最为复杂的一个,我们可以通过DOM来创建生成它,或者HTML DOM来操作它.(PS:HTML DOM提供了更加方便快捷的方式来操作HTML,有手册). //需要操作table<table border = "1

Javascript DOM 03 表格添加、删除 + 搜索

获取 tBodies.tHead.tFoot.rows.cells 隔行变色 鼠标移入高亮 添加.删除一行 DOM方法的使用  添加.删除 1 <script> 2 window.onload=function (){ 3 /*var str='abcdef'; 4 alert(str.search('g')); //找到并且返回字符串出现的位置,如果没找到-1 5 */ 6 /* 7 var str='abc 123 ert'; 8 var arr=str.split(' '); 9 ale

DOM / DOM操作表格

DOM [获取层次节点的常用属性] 1 .childNodes:(数组)获取UL里面的所有子节点(包含元素节点/文本节点): 2 .firstChild:获取元素的第一个子节点: 3 .lastChild: 获取元素的最后一个子节点: 4 .ownerDocument:获取当前文档根节点.在HTML文档中,为document节点: 5 .parentNode: 获取当前节点的父节点: 6 .previousSibling:获取当前节点的前一个兄弟节点: 7 .nextSibling: 获取当前节

DOM系列---DOM操作表格

DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本篇章主要了解一下DOM操作表格. 一.操作表格 <table>标签是HTML中结构最为复杂的一个,我们可以通过DOM来创建生成它,或者HTML DOM来操作它.(PS:HTML DOM提供了更加方便快捷的方式来操作HTML,有手册). html代码部分: //需要操作的table 1 <table border="1" width="300&

DOM中表格的操作方法总结

DOM中表格的操作方法总结 <table/>元素的方法如下: caption:指向<caption/>元素(如果存在): tBodies:<tbody/>元素的集合: tFoot:指向<tfoot/>元素(如果存在): tHead:指向<thead/>元素(如果存在): rows:表格中所有行的集合: createTHead():创建<thead/>元素并将其放入表格: createTFoot():创建<tfoot/>元素

第21章 DOM操作表格及样式

学习要点: 1.操作表格 2.操作样式 DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本章主要了解一下DOM操作表格和样式的一些知识. 一.操作表格 <table>标签是HTML中结构最为复杂的一个,我们可以通过DOM来创建生成它,或者HTML DOM来操作它.(PS:HTML DOM提供了更加方便快捷的方式来操作HTML,有手册). //需要操作的table <table border="1" w

DOM操作表格——HTML DOM

html创建表格: <table berder='1' width='300'> <thead> <tr> <th>姓名</th> <th>性别</th> <th>年龄</th> </tr> </thead> <tbody> <tr> <th>tzr</th> <th>男</th> <th>2

采用DOM进行表格的修改操作

2015-08-31 <html> <head> <title>采用DOM进行表格的修改操作</title> <script language="JavaScript"> function addRow() { var tab=document.getElementbyId("mytab");//取得table的节点对象 var id=document.getElementById("id&quo