JavaScript_动态表格_删除功能

news2024/11/17 5:54:44

1、动态表格_删除功能 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>动态表格_添加和删除功能</title>
    <style>
        table{
            border: 1px solid;
            margin: auto;
            width: 100%;
        }
        td,th{
            text-align: center;
            border: 1px solid;
        }
        div{
            text-align: center;
            margin: 50px;
        }
    </style>
</head>
<body>
                        <div>
                            <input type="text" id="id" placeholder="请输入编号"/>
                            <input type="text" id="name" placeholder="请输入姓名"/>
                            <input type="text" id="gender" placeholder="请输入性别"/>
                            <input type="button" value="添加" id="btn_add" onclick="btn_add"/>
                        </div>
                        <table>
                            <caption>学生信息表</caption>
                            <tr>
                                <th>编号</th>
                                <th>姓名</th>
                                <th>性别</th>
                                <th>操作</th>
                            </tr>
                            <tr>
                                <td>1</td>
                                <td>张三丰</td>
                                <td>男</td>
                                <td><a href="javascript:void(0)" onclick="delTr(this)">删除</a> </td>
                            </tr>
                            <tr>
                                <td>2</td>
                                <td>张翠山</td>
                                <td>男</td>
                                <td><a href="javascript:void(0)" onclick="delTr(this)">删除</a> </td>
                            </tr>
                            <tr>
                                <td>3</td>
                                <td>张无忌</td>
                                <td>男</td>
                                <td><a href="javascript:void(0)" onclick="delTr(this)">删除</a> </td>
                            </tr>
                        </table>

                <script>
                    /**
                     *     1、给添加按钮绑定单击事件
                     *     2、获取文本框的内容
                     *     3、创建td,设置td的文本为文本框的内容
                     *     4、创建tr
                     *     5、将td添加到tr中
                     *     6、获取table,将tr添加到table中
                     */
                    //1、获取按钮
                    document.getElementById("btn_add").onclick = function () {
                        //2、获取文本框的内容
                        let id = document.getElementById("id").value;
                        let name = document.getElementById("name").value;
                        let gender = document.getElementById("gender").value;
                        //3.创建td,赋值td的标签体
                        //id的td
                        let td_id = document.createElement("td");
                        let text_id = document.createTextNode(id);
                        td_id.appendChild(text_id);
                        //name的td
                        let td_name = document.createElement("td");
                        let text_name = document.createTextNode(name);
                        td_name.appendChild(text_name);
                        //gender的td
                        let td_gender = document.createElement("td");
                        let text_gender = document.createTextNode(gender);
                        td_gender.appendChild(text_gender);
                        //a标签的td
                        let td_a = document.createElement("td");
                        let ele_a = document.createElement("a");
                        ele_a.setAttribute("href", "javascript:void(0)");
                        ele_a.setAttribute("onclick", "delTr(this)");
                        let text_a = document.createTextNode("删除");
                        ele_a.appendChild(text_a);
                        td_a.appendChild(ele_a);

                        //4、创建tr
                        let tr = document.createElement("tr");
                        //5、添加td到tr中
                        tr.appendChild(td_id);
                        tr.appendChild(td_name);
                        tr.appendChild(td_gender);
                        tr.appendChild(td_a);
                        //6、获取table
                        let table = document.getElementsByTagName("table")[0];
                        table.appendChild(tr);
                    };

                    //删除方法
                    function delTr(obj) {
                        let table = obj.parentNode.parentNode.parentNode;
                        let tr = obj.parentNode.parentNode;
                        table.removeChild(tr);
                    }
                </script>


</body>
</html>

2、delTr 

// 定义删除指定tr标签的函数             
function delTr(obj) {
    // 获取包含要删除的tr标签的table标签                
    let table = obj.parentNode.parentNode.parentNode;
    // 获取要删除的tr标签
    let tr = obj.parentNode.parentNode;
    // 从table标签中移除tr标签
    table.removeChild(tr);    
}
//这段HTML函数用于删除一个特定的tr元素,它首先通过obj获取到包含该元素的table元素,然后获取到要删除的tr元素,并从table中移除该tr元素。

 

在JS中,parentNode是一个DOM属性,代表当前节点的父节点。也就是说,每个节点(除了根节点)都有父节点,parentNode可以用来访问这个父节点。例如,如果element是一个DOM元素节点,那么element.parentNode就是它的父元素节点。

在JavaScript中,parentNode是一个DOM节点属性,它表示当前节点的父节点。换句话说,它存储了当前节点的直接父元素,可以通过该属性访问该节点的父级元素。例如,如果要访问某个元素的父元素,可以使用以下代码:

var parentElement = element.parentNode;

其中,element是要查找其父元素的元素。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1200749.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

总结:利用JDK原生命令,制作可执行jar包与依赖jar包

总结&#xff1a;利用JDK原生命令&#xff0c;制作可执行jar包与依赖jar包 一什么是jar包&#xff1f;二制作jar包的工具&#xff1a;JDK原生自带的jar命令&#xff08;1&#xff09;jar命令注意事项&#xff1a;&#xff08;2&#xff09;jar包清单文件创建示例&#xff1a;&a…

20231112_DNS详解

DNS是实现域名与IP地址的映射。 1.映射图2.DNS查找顺序图3.DNS分类和地址4.如何清除缓存 1.映射图 图片来源于http://egonlin.com/。林海峰老师课件 2.DNS查找顺序图 3.DNS分类和地址 4.如何清除缓存

winform+access数据库增删查改报表导出demo源码

C#winformaccess数据库增删查改报表导出demo源码设备管理的一个简单程序使用access数据库增删查改导出报表功能 OleDbConnection conn new OleDbConnection("Data Source" System.Windows.Forms.Application.StartupPath "\\config\\cinfor.mdb;ProviderMicr…

Java图像编程之:Graphics

一、概念介绍 1、Java图像编程的核心类 Java图像编程的核心类包括&#xff1a; BufferedImage&#xff1a;用于表示图像的类&#xff0c;可以进行像素级的操作。Image&#xff1a;表示图像的抽象类&#xff0c;是所有图像类的基类。ImageIcon&#xff1a;用于显示图像的类&a…

.net在使用存储过程中IN参数的拼接方案,使用Join()方法

有时候拼接SQL语句时&#xff0c;可能会需要将list中的元素都加上单引号&#xff0c;并以逗号分开&#xff0c;但是Join只能简单的分开&#xff0c;没有有单引号&#xff01; 1.第一种拼接方案 List<string> arrIds new List<string>(); arrIds.Add("aa&qu…

微软近日限制员工访问ChatGPT!

作者 | 撒鸿宇 据CNBC报道&#xff0c;在这周四的短时间内&#xff0c;微软的员工被禁止使用ChatGPT。 微软在其内部网站的更新中表示&#xff1a;“由于安全和数据问题&#xff0c;一些AI工具不再对员工开放。”据CNBC查证&#xff0c;他们看到了一张截图&#xff0c;该截图显…

[Go语言]SSTI从0到1

[Go语言]SSTI从0到1 1.Go-web基础及示例2.参数处理3.模版引擎3.1 text/template3.2 SSTI 4.[LineCTF2022]gotm1.题目源码2.WP 1.Go-web基础及示例 package main import ("fmt""net/http" ) func sayHello(w http.ResponseWriter, r *http.Request) { // 定…

发布订阅者模式(观察者模式)

目录 应用场景 1.结构 2.效果 3.代码 3.1.Main方法的类【ObserverPatternExample】 3.2.主题&#xff08;接口&#xff09;【Subject】 3.3.观察者&#xff08;接口&#xff09;【Observer】 3.4.主题&#xff08;实现类&#xff09;【ConcreteSubject】 3.5.观察者&a…

[工业自动化-16]:西门子S7-15xxx编程 - 软件编程 - 西门子仿真软件PLCSIM

目录 前言&#xff1a; 一、PLCSIM仿真软件 1.1 PLCSIM仿真软件基础版&#xff08;内嵌&#xff09; 1.2 PLCSIM仿真软件与PLCSIM仿真软件高级版的区别&#xff1f; 1.3 PLCSIM使用 前言&#xff1a; PLC集成开发环境是运行在Host主机上&#xff0c;Host主机与PLC可以通过…

外星人笔记本键盘USB协议逆向

前言 我朋友一台 dell g16 购买时直接安装了linux系统&#xff0c;但是linux上没有官方的键盘控制中心&#xff0c;所以无法控制键盘灯光&#xff0c;于是我就想着能不能逆向一下键盘的协议&#xff0c;然后自己写一个控制键盘灯光的程序。我自己的外星人笔记本是m16&#xff…

基恩士软件的基本指令(二)

目录 基础指令 输入输出常开常闭指令 “A软元件名称--装入快捷键” “O软元件名称--输出快捷键” “ALT回车--连线快捷键” “B软元件--常闭接点” “软元件“/”--切换常开/常闭接点状态” 上升沿下降沿指令 “P-软元件回车--上升沿输入方法” “F-软元件回车--下降沿输入…

logback异步日志打印阻塞工作线程

前言 最新做项目&#xff0c;发现一些历史遗留问题&#xff0c;典型的是日志打印的配置问题&#xff0c;其实都是些简单问题&#xff0c;但是往往简单问题引起严重的事故&#xff0c;比如日志打印阻塞工作线程&#xff0c;以logback和log4j2为例。logback实际上是springboot的…

通过SD卡给某摄像头植入可控程序

0x01. 摄像头卡刷初体验 最近研究了手上一台摄像头的sd卡刷机功能&#xff0c;该摄像头只支持fat32格式的sd卡&#xff0c;所以需要先把sd卡格式化为fat32&#xff0c;另外微软把fat32限制了最大容量32G&#xff0c;所以也只能用不大于32G的sd卡来刷机。 这里使用32G的sd卡来…

flutter逆向 ACTF native app

前言 算了一下好长时间没打过CTF了,前两天看到ACTF逆向有道flutter逆向题就过来玩玩啦,花了一个下午做完了.说来也巧,我给DASCTF十月赛出的逆向题其中一道也是flutter,不过那题我难度降的相当之低啦,不知道有多少人做出来了呢~ 还原函数名 flutter逆向的一大难点就是不知道l…

RGMII回环:IDDR+ODDR+差分接口

目录 一、实验内容二、原理解释三、程序1、顶层文件&#xff1a;2、子模块2.1 oddr模块2.2、iddr顶层模块2.3、iddr子模块 3、仿真4、注意5、下载工程及仿真 一、实验内容 1、通过IDDR和ODDR的方式完成RGMII协议&#xff1b; 2、外部接口使用OBUFDS、IBUFDS转换成差分接口&…

C++语言的广泛应用领域

目录 1. 系统级编程 2. 游戏开发 3. 嵌入式系统 4. 大数据处理 5. 金融和量化分析 6. 人工智能和机器学习 7. 网络和通信 结语 C是一种多范式编程语言&#xff0c;具有高性能、中级抽象能力和面向对象的特性。由Bjarne Stroustrup于1979年首次设计并实现&#xff0c;C在…

如何确定线程栈的基址?

起 很早之前&#xff0c;我遇到过几个与栈相关的问题&#xff0c;当时总结过几篇关于线程栈的文章&#xff0c;分别是 《栈大小可以怎么改&#xff1f;》、《栈局部变量优化探究&#xff0c;意外发现了 vs 的一个 bug &#xff1f;》、《栈又溢出了》、《有趣的异常》。在这几…

【fast2021论文导读】 Learning Cache Replacement with Cacheus

文章:Learning Cache Replacement with Cacheus 导读摘要: 机器学习的最新进展为解决计算系统中的经典问题开辟了新的、有吸引力的方法。对于存储系统,缓存替换是一个这样的问题,因为它对性能有巨大的影响。 本文第一个贡献,确定了与缓存相关的特征,特别是,四种工作负载…

C++基础(2)——类和对象

目录 1. 类的引入&#xff1a; 2. 类的定义&#xff1a; 2.1类的定义以及基本结构&#xff1a; 2.2 类的访问限定符&#xff1a; 3. 类的声明与定义的分离&#xff1a; 4. 类的实例化&#xff1a; 5. 类的大小计算&#xff1a; 1. 类的引入&#xff1a; 在数据结构系列的…

有源RS低通滤波

常用的滤波电路有无源滤波和有源滤波两大类。若滤波电路元件仅由无源元件&#xff08;电阻、电容、电感&#xff09;组成&#xff0c;则称为无源滤波电路。无源滤波的主要形式有电容滤波、电感滤波和复式滤波(包括倒L型、LC滤波、LCπ型滤波和RCπ型滤波等)。若滤波电路不仅有无…