js_表格的增删改

学到后面发现前面的内容都不是很巩固了。

知道自己的不足之后,最近在复习一些学过的知识。

用js做了一个还不是完美表格增删改。(只适合列数比较少的表格)

贴上代码:

html:

<div class="goods_info">
        <table class="goods_ctg">
            <caption class="ctg_caption">
                商品类别信息
            </caption>
            <thead>
                <tr>
                    <th>类别编号</th>
                    <th>类别名称</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>1</td>
                    <td>食品</td>
                </tr>
                <tr>
                    <td>2</td>
                    <td>日用品</td>
                </tr>
                <tr>
                    <td>3</td>
                    <td>家用电器</td>
                </tr>
                <tr>
                    <td>4</td>
                    <td>服饰</td>
                </tr>
            </tbody>
        </table>

        <div class="hidden_box" id="hidden_text">
            <label for="input_info" id="tips">商品名称:</label>
            <input type="text" name="input_info" id="input_info" class="input_info">
            <input type="button" name="ok_btn" id="ok_btn" class="ok_btn" value="确&nbsp;认">
        </div>
        <div class="clearfix"></div>

        <input type="button" name="modify_goods" id="modify" class="btn" value="修&nbsp;改">
        <input type="button" name="del_goods" id="del" class="btn" value="删&nbsp;除">
        <input type="button" name="add_goods" id="add" class="btn" value="添&nbsp;加">

        <div class="clearfix"></div>
    </div>

css:

<style>
*{
    padding: 0;
    margin:0;
}
.goods_info{
    width:800px;
    margin:100px auto;
    border:2px solid pink;
}
.goods_ctg{
    border:1px solid black;
    border-collapse: collapse;
    margin:50px auto;
}
.goods_ctg th{
    padding:10px;
    border:1px solid black;
}
.goods_ctg td{
    padding: 10px;
    border:1px solid black;
}
.ctg_caption{
    font-size:25px;
    font-weight: bold;
    margin-bottom: 15px;
    color: #EE6363;
}
.btn{
    float: right;
    width: 120px;
    height:30px;
    font-size:20px;
    font-weight: bold;
    margin-right: 20px;
    margin-bottom: 20px;
    border-radius: 10px;
    border: 0;
    outline: none;
    background: #4caf50;
    color: #fff;
    opacity: 0.8;
}
.btn:hover{
    opacity: 1;
}
.hidden_box{
    float:right;
    margin:0 50px 40px 10px;
    display: none;
}
.hidden_box label{
    font-size:19px;
    font-weight: bold;
    color: #3d8b40;
}
.input_info{
    height:20px;
    width: 160px;
    font-size:17px;
    border-radius: 5px;
    box-shadow: none;
    background: #F8F8FF;
    outline: none;
    opacity: 0.6;
}
.ok_btn{
    width: 90px;
    height:30px;
    font-size:18px;
    font-weight: bold;
    border-radius: 10px;
    border: 0;
    outline: none;
    background: #A2CD5A;
    color: #fff;
    opacity: 0.85;
}
.ok_btn:hover{
    opacity: 1;
}
.clearfix{
    clear: both;
}

</style>

js:

<script>
window.onload=function(){

    changeColor();

    /*添加*/
    var add = document.getElementById("add");
    add.onclick=function(){

        //显示隐藏块
        var hidden_text =document.getElementById("hidden_text");
        var txt = document.getElementById("input_info");
        hidden_text.style.display="block";

        //对隐藏块的修改
        var ok_btn = document.getElementById("ok_btn");
        ok_btn.value="新增"
        var tips = document.getElementById("tips");
        tips.innerHTML = "商品名称:";

        ok_btn.onclick = function(){

            //获取最后一行的商品编号
            var pre_tr = document.getElementsByTagName("tbody")[0].getElementsByTagName("tr");
            var pre_len = pre_tr.length;
            var last_no = pre_len; //parseInt(pre_tr[pre_len-1].getElementsByTagName("td")[0].innerHTML);

            var flag=0;
            for(var j=0;j<pre_len;j++){
                if(pre_tr[j].getElementsByTagName("td")[1].innerHTML == txt.value){
                    flag = 1;
                }
            }

            if(txt.value == ""){
                alert("请输入商品名称!")
                return;
            }
            else if(flag==1){
                alert("输入的商品名称已存在!")
            }
            else{

                //创建节点
                var goods_tr = document.createElement("tr");
                var tdByNo = document.createElement("td");
                var tdByName = document.createElement("td");

                var goods_tbody = document.getElementsByTagName("tbody")[0]

                tdByNo.innerHTML = last_no+1;
                tdByName.innerHTML = txt.value;

                goods_tr.appendChild(tdByNo);
                goods_tr.appendChild(tdByName);
                goods_tbody.appendChild(goods_tr);

                hidden_text.style.display="none";
                changeColor();

                alert("添加成功!");

            }

        }
    }

    /*删除*/
    var del = document.getElementById("del");
    del.onclick=function(){

        //显示隐藏块
        var hidden_text =document.getElementById("hidden_text");
        var txt = document.getElementById("input_info");
        hidden_text.style.display="block";

        //对隐藏块的修改
        var ok_btn = document.getElementById("ok_btn");
        ok_btn.value="删除"
        var tips = document.getElementById("tips");
        tips.innerHTML = "商品编号:";

        ok_btn.onclick=function(){
            //是否为空
            if(txt.value==""){
                alert("商品编号不能为空!")
            }
            //检验是否为整数
            else if(parseInt(txt.value)!=txt.value){
                alert("请输入整数!")
            }
            else{
                //检验是否存在该商品编号
                var pre_tr = document.getElementsByTagName("tbody")[0].getElementsByTagName("tr");
                var pre_len = pre_tr.length;
                var flag = 0;
                for(var j=1;j<=pre_len;j++){
                    if(j == parseInt(txt.value)){
                        flag=1;
                    }
                }

                if(flag == 0){
                    alert("不存在此商品编号!")
                }
                else{
                    var goods_tbody = document.getElementsByTagName("tbody")[0];
                    goods_tbody.removeChild(pre_tr[txt.value-1]);
                    changeNo();
                    changeColor();
                    hidden_text.style.display="none";
                    alert("删除成功");
                }
            }
        }

    }

    /*修改商品名称*/
    var modify = document.getElementById("modify");
    modify.onclick=function(){

        //显示隐藏块
        var hidden_text =document.getElementById("hidden_text");
        var txt = document.getElementById("input_info");
        hidden_text.style.display="block";

        //对隐藏块的修改
        var ok_btn = document.getElementById("ok_btn");
        ok_btn.value="进行修改"
        var tips = document.getElementById("tips");
        tips.innerHTML = "商品编号:";

        ok_btn.onclick=function(){
            //是否为空
            if(txt.value==""){
                alert("商品编号不能为空!")
            }
            //检验是否为整数
            else if(parseInt(txt.value)!=txt.value){
                alert("请输入整数!")
            }
            else{
                //检验是否存在该商品编号
                var pre_tr = document.getElementsByTagName("tbody")[0].getElementsByTagName("tr");
                var pre_len = pre_tr.length;
                var flag = 0;
                var place;
                for(var j=1;j<=pre_len;j++){
                    if(j == parseInt(txt.value)){
                        flag=1;
                        place = j;
                    }
                }

                if(flag == 0){
                    alert("不存在此商品编号!")
                }
                else{

                    //对隐藏块的修改
                    var ok_btn = document.getElementById("ok_btn");
                    ok_btn.value="修改"
                    var tips = document.getElementById("tips");
                    tips.innerHTML = "商品名称:";

                    txt.value = pre_tr[place-1].getElementsByTagName("td")[1].innerHTML;

                    ok_btn.onclick=function(){

                        var f=0;
                        for(var j=0;j<pre_len;j++){
                            if(pre_tr[j].getElementsByTagName("td")[1].innerHTML == txt.value){
                                f = 1;
                            }
                        }

                        if(txt.value == ""){
                            alert("请输入商品名称!")
                            return;
                        }
                        else if(f==1){
                            alert("输入的商品名称已存在!")
                        }
                        else{
                            pre_tr[place-1].getElementsByTagName("td")[1].innerHTML = txt.value;
                            hidden_text.style.display="none";
                            alert("修改成功!");
                        }

                    }

                }
            }

        }

    }

}

/*背景色的改变*/
function changeColor(){
    var tr = document.getElementsByTagName("tbody")[0].getElementsByTagName("tr");
    var len = tr.length;
    var i;
    for(i=1;i<=len;i++){
        if(i%2 == 0){
            tr[i-1].style.background="#f1f1f1";
        }
        else{
            tr[i-1].style.background ="#fff"
        }
    }
}

/*序号重排*/
function changeNo(){
    var trs = document.getElementsByTagName("tbody")[0].getElementsByTagName("tr");
    var len = trs.length;
    for(var j=1;j<=len;j++){
        trs[j-1].getElementsByTagName("td")[0].innerHTML = j;
    }
}

</script>

效果展示:

商品类别信息
类别编号 类别名称
1 食品
2 日用品
3 家用电器
4 服饰

商品名称:

以上内容,如有错误请指出,不甚感激。

时间: 2024-10-08 23:47:43

js_表格的增删改的相关文章

表格的增删改查

这周,复习了JS的操作,并用更简捷的代码,实现了表格的增删改查!   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   "http://www.w3.org/TR/html4/loose.dtd">   <html>   <head>   <meta charset="utf-8">   <title><

表格的增删改操作

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>表格的增删改操作</title> <script type="text/javascript"> function createTable() { var body = document.getElementById(&quo

easyui学习笔记2—在行内进行表格的增删改操作【转载】

第一篇笔记中记录了如何实现表格的增删改,那个是点击之后跳出来一个对话框然后进行的,这里是在表格本身上进行的操作,也很简单,但是这里发现一个版本问题,也可以说是兼容性问题. 1.首先我们看引用的js和css代码 <link rel="stylesheet" href="jquery-easyui-1.3.5/themes/default/easyui.css" /> <link rel="stylesheet" href=&quo

基于AT UI实现表格的增删改查遇到的坑

基于AT UI实现表格的增删改查遇到的坑 坑一.表格数据加载的渲染报错 报错:Error in render: "TypeError: Cannot read property 'isChecked' of undefined" 错误原因:将数据加载进data中后,数据进入表格组件at-table中报错,为AT UI内部问题. 解决方法:数据改变后,at-table组件强制刷新.刷新方法:https://www.cnblogs.com/s313139232/p/9176820.html

冒泡排序和对表格的增删改减

冒泡排序代码 效果图:  隐含的逻辑描述(假设数组有n项): 1, 需要进行n-1趟的"冒泡"比较过程.2, 每一趟的比较都前一趟少比一次,第一趟需要比较n-1次3, 每趟比较,都是从数组的开头(0)开始,跟紧挨的元素比较,并进行交换(需要的时候) 1 // JavaScript Document 2 var but = null,//定义变量 3 n = 0, 4 dd = null, 5 thlength = null, 6 tab = null; 7 window.onload=

jquery表格动态增删改及取数据绑定数据完整方案

一 前言 上一篇Jquery遮罩插件,想罩哪就罩哪! 结尾的预告终于来了. 近期参与了一个针对内部员工个人信息收集的系统,其中有一个需求是在填写各个相关信息时,需要能动态的增加行当时公司有自己的解决方案 那就是用GridView 那个庞大的服务器控件,我一真就不怎么喜欢用服务器控件,于是极力说服PM用js来处理,并成功争取到了,先说下如果用GridView来处理的缺点, 1 生成的html代码会比较冗余, 2 每一个操作都会伴随页面回发, 3 每个操作都会刷新页面,这样的用户体验极差,就算用up

Angularjs中表格的增删改查

总体的效果图是: 图中的每个按钮都是可以实现其操作的. (1)首先是html页面的编写: <!doctype html> <html ng-app="myModule"> <head> <meta charset="utf-8"> <title>学生信息管理</title> //需要用到的一些库,要加载的 <script src="bower_components/angular

datatables 前端表格插件 增删改查功能

官方网站:http://datatables.club/example/<!-- DataTables CSS -->css引入的<link rel="stylesheet" type="text/css" href="http://cdn.datatables.net/1.10.7/css/jquery.dataTables.css"> <!-- jQuery --><script type="

js的动态表格的增删改查思路

1. 首先我们要知道,动态添加,肯定不是 在页面上写死得,而是通过js调用循环放入到页面上的,我们在写动态表格的时候不要先着急写,我们第一步要做的就是构思,要把自己的逻辑先弄清楚,不然的话,前面是好写,到最后你就不好写了,到最后有可能要推倒重来,因为我之前就是这样. 2.接下来我们开始来完成代码部分 我们写死在页面上的的东西应该有查询按钮 全部删除 添加  还要给它一个form表单用于添加和修改数据,其实可以换别的添加和修改的方法,这里只给一个参考 代码如下: Html: css: table{