Js实现简易的增删改查

Js实现简易的增删改查

用JavaScript实现简单增删改查工作,这个应该是多数Js初学者都比较棘手的一个问题
在下面我给大家写了一个简单的案例,该案例中没有实现增加操作,大家可以自己探索一下

html结构

在结构这里我们就是用一个表格简单的实现一下
下面的div是为了方便我们实现显示与隐藏,所以单独设置了一个div

<table>
        <thead>
            <tr>
                <th>姓名</th>
                <th>手机号</th>
                <th>操作</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>jon1</td>
                <td>15239111596</td>
                <td>
                    <button class="del">删除</button>
                    <button class="ref">修改</button>
                </td>
            </tr>
            <tr>
                <td>jon2</td>
                <td>13223009270</td>
                <td>
                    <button class="del">删除</button>
                    <button class="ref">修改</button>
                </td>
            </tr>
            <tr>
                <td>jon3</td>
                <td>15093773181</td>
                <td>
                    <button class="del">删除</button>
                    <button class="ref">修改</button>
                </td>
            </tr>
        </tbody>
    </table>
    <div id="content">
        <input type="text">
        <input type="text">
        <button class="confirm">确认修改</button>
        <button class="cancel">取消</button>
    </div>
CSS样式

样式这块没有什么好特别嘱咐的,自己按需要设置就可以

*{
            margin: 0;
            padding: 0;
            outline: none;
        }
        table{
            width: 600px;
            margin: 0 auto;
            text-align: center;
            border: 1px solid #333333;
            /*合并表格边框属性*/
            border-collapse: collapse;
        }
        td,th{
            height: 40px;
            border: 1px solid #333333;
        }
        div{
            width: 600px;
            margin: 20px auto;
            /*默认条件下div隐藏*/
            display: none;
        }
JavaScript逻辑

逻辑这一块具体实现过程每一步,我都做了注释,方便大家阅读,在这里就不在一一阐述

var TB = document.getElementsByTagName('tbody')[0];
    var myContent = document.getElementById('content');
    
    // 给tbody绑定点击事件(事件委托)
    TB.onclick = function (e) {
        // 如果当前点击的是删除按钮
        if (e.target.className == 'del') {
            // 弹出一个询问框,并用x接收返回值 ----  
            // 询问框返回值只有两个  点击确认:true  点击取消:false
            var x = confirm('确认删除吗?');
            // 如果x值为真,即点击了确认,删除所在行
            if (x) { 
                // e.target 为当前点击对象--->删除按钮
                // e.target.parentElement ---> td 
                // e.target.parentElement.parentElement  ---> tr
                TB.removeChild(e.target.parentElement.parentElement);
            }else{
                TB.removeChild();
            }
        }
        // 如果当前点击的是修改按钮
        if(e.target.className == 'ref'){
            // 下面的div要显示出来
            myContent.style.display = "block";
            // 给每一个输入框赋初始值
            /* 
                这是让 myContent.children[0] 第一个输入框的value(输入框中显示的字为姓名)
                e.target.parentElement.parentElement  ---> tr
                e.target.parentElement.parentElement.children[0]  --->  tr的第一个子节点,即姓名所在的td
             */
            myContent.children[0].value = e.target.parentElement.parentElement.children[0].innerText;
            // 这与第一个原理如出一辙
            myContent.children[1].value = e.target.parentElement.parentElement.children[1].innerText;

            // 给div绑定点击事件(事件委托),这里形参用ev是为了区别上面的e
            myContent.onclick = function(ev){
                // 如果点击的是确认修改
                if (ev.target.className == 'confirm') {
                    // 下面的div要隐藏起来
                    myContent.style.display = "none";
                    // 点击了确认修改就把文本框的value值赋值给对应td的文本
                    e.target.parentElement.parentElement.children[0].innerText =  myContent.children[0].value;
                    e.target.parentElement.parentElement.children[1].innerText =  myContent.children[1].value;
                }
                // 如果点击的是取消,下面的div同样要隐藏,之所以这样写,是因为只有点击这两个按钮才会执行隐藏操作
                if (ev.target.className == 'cancel') {
                    myContent.style.display = "none";
                }
            }
        }
    }

点击删除按钮时的效果

在这里插入图片描述
在弹出框点击确认后
在弹出框点击确认后
在弹出框点击取消后
在弹出框点击取消后
点击修改按钮
点击修改按钮
在第二个文本框修改后,点击确认修改
在这里插入图片描述

  • 22
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
### 回答1: 好的。 使用 JavaScript 实现图的增删改查,可以使用以下方法: 增加节点: - 可以使用图的 addVertex(value) 方法向图中添加一个新节点,其中 value 是新节点的值。 增加边: - 可以使用图的 addEdge(vertex1, vertex2) 方法向图中添加一条边,其中 vertex1 和 vertex2 是节点的值。 删除节点: - 可以使用图的 removeVertex(value) 方法从图中删除节点,其中 value 是节点的值。 删除边: - 可以使用图的 removeEdge(vertex1, vertex2) 方法从图中删除边,其中 vertex1 和 vertex2 是节点的值。 查找节点: - 可以使用图的 findVertex(value) 方法查找节点,其中 value 是节点的值。 查找边: - 可以使用图的 findEdge(vertex1, vertex2) 方法查找边,其中 vertex1 和 vertex2 是节点的值。 希望这些信息能帮助到你。 ### 回答2: 使用JavaScript可以很容易地实现图的增删改查功能。在这里,我们可以采用图的邻接矩阵表示法来实现。 首先,我们需要创建一个二维数组来表示图的邻接矩阵。数组的长度为图的顶点数,可以初始化为0,表示没有边连接。当有边连接时,我们将数组中对应位置的元素设为1。 接下来,我们可以实现图的增加边的功能。通过将两个顶点的对应位置设为1,我们可以在图中添加一条边。 图的删除边功能可以通过将两个顶点的对应位置设为0来实现。这样,我们可以在图中删除一条边。 要查询图中是否存在某条边,我们只需要检查对应位置是否为1。如果是,那么表示图中存在这条边。 图的修改功能可以看作是删除边和增加边的结合,即先删除原有的边,然后添加新的边。 总结起来,使用JavaScript实现图的增删改查步骤如下: 1. 创建一个二维数组,表示图的邻接矩阵。 2. 实现添加边功能,将对应位置设为1。 3. 实现删除边功能,将对应位置设为0。 4. 实现查询边功能,检查对应位置是否为1。 5. 实现修改边功能,先删除原有边,然后添加新的边。 通过以上步骤,我们可以很方便地使用JavaScript实现图的增删改查功能。 ### 回答3: 使用JavaScript实现图的增删改查可以通过创建一个图的对象来实现。首先,我们需要定义一个图的类,该类包含添加节点和边、删除节点和边、修改节点和边以及查找节点和边的方法。 1. 添加节点和边: - 添加节点:在图的对象中定义一个`addNode`方法,将节点添加到图的节点集合中。 - 添加边:在图的对象中定义一个`addEdge`方法,将边添加到图的边集合中,同时更新相关节点的邻接信息。 2. 删除节点和边: - 删除节点:在图的对象中定义一个`removeNode`方法,首先删除该节点的相关边,然后将该节点从节点集合中删除。 - 删除边:在图的对象中定义一个`removeEdge`方法,将该边从边集合中删除,同时更新相关节点的邻接信息。 3. 修改节点和边: - 修改节点:在图的对象中定义一个`updateNode`方法,找到该节点并更新节点的属性。 - 修改边:在图的对象中定义一个`updateEdge`方法,找到该边并更新边的属性。 4. 查找节点和边: - 查找节点:在图的对象中定义一个`findNode`方法,根据节点的唯一标识符查找节点。 - 查找边:在图的对象中定义一个`findEdge`方法,根据边的唯一标识符查找边。 使用以上方法,可以方便地实现图的增删改查操作。在实际应用中,可以根据具体需求对图的对象进行扩展,例如增加节点属性、边属性以及其他图算法等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值