jQuery来写员工新增和删除(程序默写练习)

news2024/9/22 5:24:34

目录

一、实现功能:

二、涉及知识点

1、函数的写法:

2、confirm函数

3、获取父节点,以及通过父节点获取指定类型和位置的子节点

3、删除节点元素

4、获取节点元素的文本内容

5、val()函数和text()函数的区别

6、创建一个节点

7、挂载节点、插入节点

 三、修改和默写

删除部分

删除函数

 添加函数

附录:

重要体会:!之所以不用循环,是比方说$("#a")是一个数组,数组中有元素点击,如果下面写还是写选择器名那么就选了全部,所以应该使用this


一、实现功能:

用jQuery来写员工新增和删除

如图所示:按delete删除整行,输入empno,empname,sal点击添加添加到下方

 原格式文件:写在附录

二、涉及知识点

1、函数的写法:

(不是由常见的加载事件触发的函数)

    function 函数名(参数){
       函数方法
    }

2、confirm函数

格式:confirm(字符串)—弹出一个确认框

返回一个布尔类型的值,当点击确定,返回true,点击取消返回false

 if (confirm("是否删除" + ename + "的信息吗")) {
     函数体
}

3、获取父节点,以及通过父节点获取指定类型和位置的子节点

parent()——获取指定节点的父节点

find(元素名)——获取指定节点下的子节点中的指定元素数组,可以隔代查找比如爷爷找孙子

eq(下标)——在find()之后获取该数组下标

格式:
$(js对象).parent().find("标签名").eq(下标)//获取某个元素

3、删除节点元素

empty()——清空当前元素节点的后代元素

remove()——删除当前元素节点以及所有后代元素

$(js对象).remove();
$(js对象).delete();

4、获取节点元素的文本内容

text()——获取元素节点中的文本内容

格式:
$(js对象).parent().find("标签名").eq(下标).text()//获取某个元素

5、val()函数和text()函数的区别

 <td>张三</td>

 要获取张三就是text() 文本内容

要获取文本框中的内容就是val()

empno:<input class="input"type="text" id="empno"/>&nbsp;&nbsp;

6、创建一个节点

$("HTML代码")——我们需要将创建的节点html代码写入$("")中即可

这里的$不是为了把js对象转成jQuery对象

7、挂载节点、插入节点

①appendTo 把新节点挂在在父节点的最后一个位置

2②新节点.prependTo(父节点)——将新节点挂在指定父节点下第一个位置

 三、修改和默写

删除部分

首先写一个删除函数:写在窗体加载事件之外

     function del(aNode) {//传入一个节点
         //传入a节点下父节点的父节点的数组下标为1的值
         var ename = $(aNode).parent().parent().eq(1);
         if (confirm("是否删除" + ename + "的信息吗")) {
         }//注意写函数的时候不要用常见的英文动词,有可能是关键字
         $(aNode).parent().parent().remove;//注意这边标签a的父节点是td 不是tr,删除tr应该是父节点的父节点
         //注意remove和parent都是jQuery的函数,aNode是js的对象应该转型
     }

 修改:tr节点下 的数组是按元素分类的,哪怕四个元素都想相同,不应该写成

$(aNode).parent().parent().remove;

需要通过find(元素名)来获取指定节点下的子节点中的指定元素数组

改正:

 var ename = $(aNode).parent().parent().find("td").eq(1);

注意点:

①注意写函数的时候不要用常见的英文动词,有可能是关键字  

 var ename = $(aNode).parent().parent().find("td").eq(1);

 ② 注意这边标签a的父节点是td 不是tr,删除tr应该是父节点的父节点

<tr >
        <td>1001</td>
        <td>张三</td>
        <td>8000</td>
        <td><a href="#" name="type">delete</a></td>
    </tr>

 ③注意remove和parent都是jQuery的函数,aNode是js的对象应该转型
 

$(aNode).parent().parent().remove;

错误处:remove函数没写括号()

empty()——清空当前元素节点的后代元素

remove()——删除当前元素节点以及所有后代元素

confirm的内容是节点元素的文本内容,不是节点元素本身

删除函数

  function del(aNode) {//传入一个节点
         //传入a节点下父节点的父节点的数组下标为1的值
         var ename = $(aNode).parent().parent().find("td").eq(1).text();
         if (confirm("是否删除" + ename + "的信息吗")) {
         }//注意写函数的时候不要用常见的英文动词,有可能是关键字
         $(aNode).parent().parent().remove();//注意这边标签a的父节点是td 不是tr,删除tr应该是父节点的父节点
         //注意remove和parent都是jQuery的函数,aNode是js的对象应该转型
     }
         $(function () {
       //删除
             $("a").click(function () {
                 del(this);
             })

 添加函数

  $("#add").click(function () {
                //读取元素
                var empno = $("#empno").val();
                var empname = $("#empname").val();
                var sal = $("#sal").val();
                var dele =$("<td><a href='#'>delete</a></td>");
                //创建一个tr节点,注意转成jQuery 格式$("js对象")
                var trNode =$("<tr></tr>");
                $("<td>"+empno+"</td>").appendTo(trNode);
                $("<td>"+empname+"</td>") .appendTo(trNode);
                $("<td>"+sal+"</td>") .appendTo(trNode);
                dele.appendTo(trNode);
                trNode.find("a").click(function () {
                    del(this)
                });//find可以隔代查找
                trNode.appendTo($("#tab"));

            })

原格式文件:写在附录

附录:

①原格式文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
    <style type="text/css">
      body{
          text-align: center;
      }
      table,td,th{
          border:1px solid black;
      }
      table{
          border-collapse: collapse;
          margin: 1px auto;
      }
      td,th{
          panding:10px,20px
      }

    </style>
    <script type="text/javascript">
        $(function () {
            //删除
            $("a").click(function () {
                $("a").parent().remove();
            })
            //新增
$("#add").click(function () {
    var eno=$("#empno").val();
    var ename=$("#empname").val();
    var sal=$("#sal").val();

    $("<th>"+eno+"</th>").
    appendTo($("#game"));
    $("<th>"+ename+"</th>").
    appendTo($("#game"))
    $("<th>"+sal+"</th>").
    appendTo($("#game"))


})
        })
    </script>
</head>
<body>
<h3>员工管理系统</h3>
empno:<input class="input"type="text" id="empno"/>&nbsp;&nbsp;
empname:<input class="input" type="text" id="empname"/>&nbsp;&nbsp;
sal:<input class="input" type="text" id="sal"/>&nbsp;&nbsp;
<button id="add">添加</button>
<br/>
<br/>
<br/>
<br/>
<table id="tab">
    <tr>
        <th>empno</th>
        <th>epname</th>
        <th>sal</th>
        <th></th>
    </tr>
    <tr >
        <td>1001</td>
        <td>张三</td>
        <td>8000</td>
        <td><a href="#" name="type">delete</a></td>
    </tr>
    <tr id>
        <td>1002</td>
        <td>李四</td>
        <td>8500</td>
        <td><a href="#" name="type">delete</a></td>
    </tr>
    </tr>
    <tr id>
        <td>1003</td>
        <td>王五</td>
        <td>9000</td>
        <td><a href="#" name="type">delete</a></td>

    </tr>
</table>
</body>
</html>

问题;不会指a标签,会把delete列(a标签)全部删完!注意a节点的parent节点是td!

$("a").click(function () {
                $(this).parent().parent().remove();
            })

 常见jQuery选择器

①$("元素名")——元素选择器 标签

重要体会:!之所以不用循环,是比方说$("#a")是一个数组,数组中有元素点击,如果下面写还是写选择器名那么就选了全部,所以应该使用this

不会新增一个tr  使得td挂载在上面:

解决:

$("#add").click(function () {
    var eno = $("#empno").val();
    var ename = $("#empname").val();
    var sal = $("#sal").val();
    var del
    = "<td><a href='#'>delete</a></td>";//注意不要占用关键字
    var trNode = $("<tr></tr>");

    $("<td>" + eno + "</td>").appendTo(trNode);
    $("<td>" + ename + "</td>").appendTo(trNode)
    $("<td>" + sal + "</td>").appendTo(trNode)
    $(del).appendTo(trNode);
    trNode.appendTo($("#tab"));
})

缺点;虽然也叫"a"但是不能删除,必须把删除功能分开赋值给

改进:


            //新增
$("#add").click(function () {
    var eno = $("#empno").val();
    var ename = $("#empname").val();
    var sal = $("#sal").val();
    var del
    = "<td><a href='#'>delete</a></td>";//注意不要占用关键字
    var trNode = $("<tr></tr>");

    $("<td>" + eno + "</td>").appendTo(trNode);
    $("<td>" + ename + "</td>").appendTo(trNode)
    $("<td>" + sal + "</td>").appendTo(trNode)
    $(del).appendTo(trNode);
    
    trNode.find("a").click(function () {
        $(this).parent().parent().remove();
    });

    trNode.appendTo($("#tab"));

6、parent()——获取指定节点的父节点

find(元素名)——获取指定节点下的子节点中的指定元素数组

eq(下标)——在find()之后获取该数组下标

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

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

相关文章

【香橙派系列教程】(三)常用外设开发

【三】常用外设开发 文章目录 【三】常用外设开发1. wiringPi外设SDK安装2.蜂鸣器BB响1.怎么将其他文件夹里面的文件复制到目前的文件夹&#xff1f;2.修改vim编辑器的tab缩进,显示行数3.蜂鸣器配合时间函数开发 小插曲&#xff1a;shell脚本3.超声波测距1. 测距原理基本说明2.…

TapData 信创数据源 | 国产信创数据库 TiDB 数据迁移指南,加速国产化进程,推进自主创新建设

随着国家对自主可控的日益重视&#xff0c;目前在各个行业和区域中面临越来越多的国产化&#xff0c;采用有自主知识产权的国产数据库正在成为主流。长期以来&#xff0c;作为拥有纯国产自研背景的 TapData&#xff0c;自是非常重视对于更多国产信创数据库的数据连接器支持&…

EasyTwin的动画系统已经到了next level?快来一探究竟!

在实际的数字孪生项目场景建设中&#xff0c;水利项目中的洪水推演、工业领域的工程施工模拟、车间产线运转、机械装置和零件配置展示等项目场景&#xff0c;都对动画效果有很强的使用需求&#xff0c;这是对渲染软件和设计师能力的极大考验&#x1f198;。 别担心&#xff01…

使用人工智能在乳腺癌筛查中的早期影响指标| 文献速递-AI辅助的放射影像疾病诊断

Title 题目 Early Indicators of the Impact of Using AI in Mammography Screening for Breast Cancer 使用人工智能在乳腺癌筛查中的早期影响指标 01 文献速递介绍 基于人群的乳腺癌筛查通过使用乳房X线摄影成功地降低了乳腺癌的死亡率&#xff0c;但这给乳腺放射科医生…

【通俗理解】自相似性探索——从分形到递归的奇妙之旅

【通俗理解】自相似性探索——从分形到递归的奇妙之旅 自相似性的奇妙比喻 你可以把自相似性比作一个“无限镜子”&#xff0c;它能够在不同的尺度上反射出相同的图案或结构。就像是在一面两面镜之间放置一个物体&#xff0c;镜子中的倒影会无限重复&#xff0c;每个倒影都与原…

韦东山瑞士军刀项目自学之中断控制LED

使用库函数设置外部中断控制LED 重点&#xff1a;在设置GPIO为外部中断控制源时&#xff0c;你至少要先检查一下信号是不是来自于你所设置的那个端口&#xff01;因为EXTI并不是对每个端口单独引线&#xff0c;而是将所有组的同编号的部分接口只用一个EXTI进行控制&#xff0c…

【最新】cuda和cudnn和显卡驱动的对应关系

NV官方文档Support Matrix — NVIDIA cuDNN v9.2.1 documentation下列的非常清楚&#xff0c;如图&#xff1a;

Cocos Creator2D游戏开发(9)-飞机大战(7)-爆炸效果

这个爆炸效果我卡在这里好长时间,视频反复的看, 然后把代码反复的测试,修改,终于给弄出来 视频中这段,作者也是修改了好几次, 跟着做也走了不少弯路; 最后反正弄出来了; 有几个坑; ① 动画体创建位置是enemy_prefab ② enemy_prefab预制体下不用放动画就行; ③ 代码中引用Anima…

入门 PyQt6 看过来(案例)18~ 表格属性

QTableWidget是常用的显示数据表格控件&#xff0c;是QTableView的子类&#xff0c;它使用标准的数据模型&#xff0c;并且其单元格数据是通过QTableWidgetItem对象来实现的。 QTableWidget类常用方法如下表&#xff1a; 方法描述setRowCount(行数)设置表格行数setColumnCount…

【C++高阶】哈希:全面剖析与深度学习

目录 &#x1f680; 前言一&#xff1a; &#x1f525; unordered系列关联式容器1.1 unordered_map1.2 unordered_set 二&#xff1a; &#x1f525; 哈希的底层结构 ⭐ 2.1 哈希概念⭐ 2.2 哈希冲突⭐ 2.3 哈希函数⭐ 2.4 哈希冲突解决2.4.1 &#x1f304;闭散列2.4.2 &#x…

【课程系列06】某乎AI大模型全栈工程师-第6期

网盘链接 链接&#xff1a;https://pan.baidu.com/s/1QLkRW_DmIm1q9XvNiOGwtQ --来自百度网盘超级会员v6的分享 课程目标 【知乎大模型课程】学习的四个维度 &#x1f449;指挥层&#xff1a;学高阶指令工程 AI编程等&#xff0c;指挥大模型完成90%代码任务&#xff0c;包…

MySql理解RR(可重复读)事务隔离级别

demo&#xff0c;理解mysql的可重复读隔离级别&#xff0c;当前读、快照读的区别 如下图&#xff0c;表sys_user中我同时开启三个事务连接&#xff1a; session1&#xff1a; 当session1开启事务时&#xff0c;mysql使用快照读保存事务开始前的数据&#xff0c;所以这条事务…

数据仓库及离线数仓架构、实时数仓架构

往期推荐 大数据HBase图文简介-CSDN博客 数仓常见名词解析和名词之间的关系-CSDN博客 目录 0. 前言 0.1 浅谈维度建模 0.2 数据分析模型 1. 何为数据仓库 1.1 为什么不直接用业务平台的数据而要建设数仓&#xff1f; 1.2 数据仓库特征 1.3 数据仓库和数据库区别 1.4 以…

VULNHUB-XXE漏洞 靶机

1.导入打开虚拟机 然后没账号密码~ 虚拟机虚拟网络编辑器是net 可以知道虚拟机的ip池 直接拿工具扫描端口 御剑 Zenmap namp 都可以 然后打开这个端口 扫描一下目录发现有个robots.txt 有个/xxe/应该是个路径 打开看看 admin.php是个文件 有个登录 试了试弱口令没办法 抓…

谁是金融核心系统市场第一名?中兴通讯旗下金篆GoldenDB

从IDC发布的《中国银行业本地部署分布式事务型数据库市场份额&#xff0c;2023》报告来看&#xff0c;中兴通讯旗下的金篆GoldenDB以24.8%的市场份额在银行业本地部署分布式数据库市场中独占鳌头&#xff0c;排名“第一”。    毕竟关系着人民群众的财产安全&#xff0c;银行…

upload-labs靶场1-19关秒杀攻略

Pass-01 打开第一关&#xff0c;我们先上传一个jpg文件看看这个文件上传功能正不正常 发现可以正常上传&#xff0c;并且访问这个图片也能正常访问&#xff0c;然后我们尝试上传php文件&#xff0c;发现弹出个警告&#xff0c;不让上传 我们上传php时开启抓包&#xff0c;发现抓…

VMware、Yum、VIM、Zsh、Oh My Zsh - 搭建属于你的虚拟机

目录 VMware 虚拟机搭建 下载 Centos7 镜像 创建虚拟机 虚拟机网络配置 常用软件配置 yum 配置 vim 安装及配置 zsh 安装 on my zsh 用起来 基本安装 插件 zsh-augosuggestions&#xff08;自动补全&#xff09; 插件 zsh-syntax-highlighting&#xff08;语法高亮…

数据结构:二叉树(链式结构)

文章目录 1. 二叉树的链式结构2. 二叉树的创建和实现相关功能2.1 创建二叉树2.2 二叉树的前&#xff0c;中&#xff0c;后序遍历2.2.1 前序遍历2.2.2 中序遍历2.2.3 后序遍历 2.3 二叉树节点个数2.4 二叉树叶子结点个数2.5 二叉树第k层结点个数2.6 二叉树的深度/高度2.7 二叉树…

Vitis HLS 完美嵌套循环通过 m_axi 接口读取DDR 的迭代次数细粒度控制实验 — 问题描述

1 自媒体账号 目前运营的自媒体账号如下&#xff1a; 哔哩哔哩 【雪天鱼】: 雪天鱼个人主页-bilibili.comCSDN 【雪天鱼】: 雪天鱼-CSDN博客 QQ 学习交流群 FPGA科研硕博交流群 910055563 (进群有一定的学历门槛&#xff0c;长期未发言会被请出群聊&#xff0c;主要交流FPG…

str字符串常量,字符指针char * str的存储方式,以及如何赋值的

在使用字符指针时&#xff0c;第一种为通常的情况。 这次主要关注第二种情况&#xff1a;把字符串赋值给字符指针变量&#xff0c;pa中存储的不是这串字符&#xff0c;而是字符串的首字符的地址。 abcdef作为一个常量字符串程序会把其放在一个单独的内存区域&#xff0c;pa存储…