js的表格对象和DOM联合操作

<!DOCTYPE html>
<html>
<head>
    <title>jsDOM添加一行表格</title>
    <style type="text/css">
        td
        {
            style="border: 1px solid green
        }
        #table_target
        {
            position: relative;
            left: 350px;
            /*border: 2px solid orange;*/
            text-align: center;
        }
        table
        {
            position: relative;
            left: 0px;
             600px;
            padding: 0px;
            /*border: 1px solid red;*/
        }
        td
        {
             20px;
            border: 2px solid green;
        }
        #student
        {
            display: block;  /*将行内元素变为块级元素*/
            font-size: 30px;
            margin: 30px;
            margin-top: 100px;
            text-align: center;
            border: 2px solid red;
        }
        form
        {
             600px;
            height: 20px;
            /*border: 1px solid red;*/
            margin-bottom: 20px;
        }
        .input_div
        {
            float: left;
            display: inline;
             150px;
        }
        input
        {
             100px;
            border-color: red;
            border-radius: 5px 5px;
        }
        .input_name
        {
             50px;
            height: 20px;
        }
        .input_div2
        {
            float: left;
            display: inline;
             150px;
            height: 20px;
            /*border: 1px solid red;*/
            margin-right: 0px;
        }
        .input_div2 input
        {
             150px;
        }
    </style>
</head>
<body>
    <div id="table_target" style=" 600px; height: 500px;">
        <span id="student">学生成绩表</span>
        <table id="table_">
            <tr>
                <td>姓名</td>
                <td>java</td>
                <td>java_web</td>
                <td>python</td>
            </tr>
            <tr>
                <td>冯磊</td>
                <td>80</td>
                <td>90</td>
                <td>100</td>
            </tr>
            <tr id="trt">
                <td>王五</td>
                <td>100</td>
                <td>100</td>
                <td>100</td>
            </tr>
        </table>
        <hr style="border: 2px solid orange;margin-top: 18px;">
        <form id="information">
            <div class="input_div">
                <span class="input_name">姓名:</span><input id="a" type="text">
            </div>
            <div class="input_div">
                <span class="input_name">java:</span><input id="b" type="text">
            </div>
            <div class="input_div">
                <span class="input_name">jweb:</span><input id="c" type="text">
            </div>
            <div class="input_div">
                <span class="input_name">pytn:</span><input id="d" type="text">
            </div>
        </form>
        <form>
            <div class="input_div2">
            <input type="button" value="修改" onclick="modify_information()">
            </div>
            <div class="input_div2">
            <input type="button" value="插入" onclick="insert_information()">
            </div>
            <div class="input_div2">
            <input type="button" value="删除" onclick="delete_information()">
            </div>
            <div class="input_div2">
            <input type="reset" value="清空" onclick="clear_information()">
            </div>
        </form>
        <hr style="border: 2px solid orange;margin-top: 18px;">
    </div>
</body>
<script language="javascript">
        function modify_information()
        {
            //获取信息
            var td1 = document.getElementById("a");
            var td2 = document.getElementById("b");
            var td3 = document.getElementById("c");
            var td4 = document.getElementById("d");
            var td_c = new Array(4);
            td_c[0]=td1;
            td_c[1]=td2;
            td_c[2]=td3;
            td_c[4]=td4;
            //得到所有行
            var data = document.getElementById("table_").rows;
            //得到所有列
            var columns = document.getElementById("table_").rows.item(0).cells;
            var flag = false;  //标志位
            for (var i = 1; i < data.length; i++) 
            {
                for (var j = 0; j < td_c.length; j++) 
                {
                    if (data[i].cells[j] == td_c[j]) 
                    {
                        flag = true;
                        break;
                    }
                }        
                if (flag == true) 
                {
                    for (var j = 0; j < td_c.length; j++)
                    {
                        data[i].cells[j] = td_c[j];
                    }
                    break;
                }
            }
            if (flag == false) 
                alert("信息未修改,请重新输入!");
        }
        function insert_information()
        {
            //获得表单值
            var td1 = document.getElementById("a").value;
            var td2 = document.getElementById("b").value;
            var td3 = document.getElementById("c").value;
            var td4 = document.getElementById("d").value;
            //标志位用来判断是否重复,广度优先遍历的思想
            var flag = false;
            //去重复插入
            var data = document.getElementById("table_").rows;
            for (var i = 1; i < data.length; i++) {
                if (td1 == data[i].cells[0].innerHTML) 
                    flag = true;
            }
            if (isNaN(td2) || isNaN(td3) || isNaN(td4)) 
            {
                alert("输入格式错误,请输入数字!");
            }
            else if ((td2 < 0 || td2 > 100) || (td3 < 0 || td3 > 100) || (td4 < 0 || td4 > 100)) 
            {
                alert("请输入0~100之间的有效成绩!");
            }
            else if (flag == true) 
            {
                alert("已经有该同学的信息了!");
            }
            else if (td1 != "" && td2 != "" && td3 != "" && td4 != "") 
            {
                //生成DOM结点 tr , td
                var td_1 = document.createElement("td");
                var td_2 = document.createElement("td");
                var td_3 = document.createElement("td");
                var td_4 = document.createElement("td");
                var tr = document.createElement("tr");
                //为DOM结点赋值
                td_1.innerHTML = td1;
                td_2.innerHTML = td2;
                td_3.innerHTML = td3;
                td_4.innerHTML = td4;
                //将td加入到tr中去
                tr.appendChild(td_1);
                tr.appendChild(td_2);
                tr.appendChild(td_3);
                tr.appendChild(td_4);
                //将tr加入到table中去
                document.getElementById("table_").appendChild(tr);
            }
            else
            {
                alert("请入数据!!!");
            }
        }
        function delete_information()
        {
            //获取信息
            var td1 = document.getElementById("a").value;
            var flag = false;
            //得到所有td
            var data = document.getElementById("table_").rows;
            for (var i = 1; i < data.length; i++) {
                if (td1 == data[i].cells[0].innerHTML) 
                {
                    flag = true;
                    document.getElementById("table_").deleteRow(i);
                }
            }
            if (flag == false) 
                alert("没有该同学的信息");
        }
        function clear_information()
        {
            //获得表单值
            document.getElementById("a").value="";
            document.getElementById("b").value="";
            document.getElementById("c").value="";
            document.getElementById("d").value="";
        }
/*
js的表格对象:
//表格行数 
    法1.var rows = document.getElementById("example_table").rows.length; 
    法2.
    //获取表格中的所有行的结点(tr....tr数据),返回值是数组
    var data = document.getElementById("example_table").rows;
     //获得所有行的数目(tr的数目) 
    var length = data.length; 
    //表格列数 ,item是获取表格中的一个条目(这里是一行)
    法1:
    var cells = document.getElementById("example_table").rows.item(0).cells.length; 
    法2:
    //获取表格中的所有行的结点(tr....tr数据),返回值是数组
    var data = document.getElementById("example_table").rows;
    //获取列数
    var cells = data[0].cells.length;
//表格对象的方法 table的方法
    createCaption()    为表格创建一个 caption 元素。
    createTFoot()    在表格中创建一个空的 tFoot 元素。
    createTHead()    在表格中创建一个空的 tHead 元素。
    deleteCaption()    从表格删除 caption 元素以及其内容。
    deleteRow(行号)        从表格删除一行。
    deleteTFoot()    从表格删除 tFoot 元素及其内容。
    deleteTHead()    从表格删除 tHead 元素及其内容。
    insertRow(行号)        在表格中插入一个新行。
    //insertRow(行号i)  是插入在第i行前面一行,if i==表格行数,会将该数据插入到该表格的最后一行
    //插入举例
    function insRow(id) {
      //在表格的第三行前插入一行数据 x指向这一行
      var x = document.getElementsByName("table").insertRow(3);
      //给该行插入列和列的数据
      var y = x.insertCell(0);
      var z = x.insertCell(1);
      y.innerHTML = z.innerHTML = "ppp";
    }
    //也可以用DOM来操作表格对象
*/
    </script>
</html>

结果截图:

 

原文地址:https://www.cnblogs.com/nanfengnan/p/15358715.html