jquery-事件、动画效果、each、.data()、表格增删改

2024-08-31 22:32

本文主要是介绍jquery-事件、动画效果、each、.data()、表格增删改,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      • 事件
      • 动画效果
      • each
      • data
      • 实现表格的增删改

事件

常用事件

click(function(){...})
hover(function(){...})
blur(function(){...})
focus(function(){...})
change(function(){...})
keyup(function(){...})

事件绑定

    .on( events [, selector ],function(){})events: 事件selector: 选择器(可选的)function: 事件处理函数

移除事件

    .off( events [, selector ][,function(){}])off() 方法移除用[ .on()绑定的事件处理程序。events: 事件selector: 选择器(可选的)function: 事件处理函数

事件委托

事件委托是通过事件冒泡的原理,利用父标签去触发子标签的事件。

示例:

表格中每一行的编辑和删除按钮。

// 事件委托的方式$("tbody").on("click", ".delete", function () {// this 当前点击的标签// 删除当前行$(this).parent().parent().remove();})

动画效果

// 基本
show([s,[e],[fn]])
hide([s,[e],[fn]])
toggle([s],[e],[fn])
// 滑动
slideDown([s],[e],[fn])
slideUp([s,[e],[fn]])
slideToggle([s],[e],[fn])
// 淡入淡出
fadeIn([s],[e],[fn])
fadeOut([s],[e],[fn])
fadeTo([[s],o,[e],[fn]])
fadeToggle([s,[e],[fn]])
// 自定义
animate(p,[s],[e],[fn])

示例代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>动画效果示例</title>
</head>
<body><img style="position: relative" id="i1" width="500" src="http://www.iyi8.com/uploadfile/2015/1024/20151024114500805.jpg" alt="我前女友">
<button id="b1">再见</button>
<button id="b2">再见x2</button>
<button id="b3">往左</button>
<button id="b4">往右</button><script src="jquery-3.2.1.min.js"></script>
<script>$("#b1").on("click", function () {$("#i1").toggle(3000);});$("#b2").on("click", function () {$("#i1").fadeToggle(3000);});$("#b3").on("click", function () {$("#i1").animate({"right": "+50px"}, 3000)});$("#b4").on("click", function () {$("#i1").animate({"right": "-50px"}, 3000)})
</script>
</body>
</html>

自定义点赞示例:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>点赞动画示例</title><style>div {position: relative;display: inline-block;}div>i {display: inline-block;color: red;position: absolute;right: -16px;top: -5px;opacity: 1;}</style>
</head>
<body><div id="d1">点赞</div>
<script src="jquery-3.2.1.min.js"></script>
<script>$("#d1").on("click", function () {var newI = document.createElement("i");newI.innerText = "+1";$(this).append(newI);$(this).children("i").animate({opacity: 0}, 1000)})
</script>
</body>
</html>点赞特效简单示例

each

jQuery.each(collection, callback(indexInArray, valueOfElement)):

描述:一个通用的迭代函数,它可以用来无缝迭代对象和数组。数组和类似数组的对象通过一个长度属性(如一个函数的参数对象)来迭代数字索引,从0到length - 1。其他对象通过其属性名进行迭代。

li =[10,20,30,40]
$.each(li,function(i, v){
console.log(i, v);//index是索引,ele是每次循环的具体元素。
})

输出如下:

010
120
230
340

.each(function(index, Element)):

描述:遍历一个jQuery对象,为每个匹配元素执行一个函数。

.each() 方法用来迭代jQuery对象中的每一个DOM元素。每次回调函数执行时,会传递当前循环次数作为参数(从0开始计数)。由于回调函数是在当前DOM元素为上下文的语境中触发的,所以关键字 this 总是指向这个元素。

// 为每一个li标签添加foo

$("li").each(function(){$(this).addClass("c1");
});

注意: jQuery的方法返回一个jQuery对象,遍历jQuery集合中的元素 - 被称为隐式迭代的过程。当这种情况发生时,它通常不需要显式地循环的 .each()方法:

也就是说,上面的例子没有必要使用each()方法,直接像下面这样写就可以了:

$("li").addClass("c1");  // 对所有标签做统一操作

在遍历过程中可以使用 return false提前结束each循环。
return是结束本次循环,进入下次循环

.data()

在匹配的元素集合中的所有元素上存储任意相关数据或返回匹配的元素集合中的第一个元素的给定名称的数据存储的值。

.data(key, value):

描述:在匹配的元素上存储任意相关数据。

$(“div”).data(“k”,100);//给所有div标签都保存一个名为k,值为100

.data(key):

描述: 返回匹配的元素集合中的第一个元素的给定名称的数据存储的值—通过 .data(name, value)或 HTML5 data-*属性设置。

$(“div”).data(“k”);//返回第一个div标签中保存的”k”的值

.removeData(key):

描述:移除存放在元素上的数据,不加key参数表示移除所有保存的数据。

$(“div”).removeData(“k”); //移除元素上存放k对应的数据

示例:

实现表格的增删改

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>作业讲解</title><style>.cover {position: fixed;top: 0;right: 0;bottom: 0;left: 0;background-color: rgba(0, 0, 0, 0.3);z-index: 999;}.modal {position: fixed;top: 50%;left: 50%;width: 400px;height: 300px;margin-top: -150px;margin-left: -200px;background-color: white;z-index: 1000;}.hide {display: none;}</style>
</head>
<body><button id="add-btn">新增</button>
<table border="1"><thead><tr><th>#</th><th>姓名</th><th>爱好</th><th>操作</th></tr></thead><tbody><tr><td>1</td><td>aa</td><td>烧热水</td><td><button class="edit">编辑</button><button class="delete">删除</button></td></tr><tr><td>2</td><td>bb</td><td>烧热水</td><td><button class="edit">编辑</button><button class="delete">删除</button></td></tr><tr><td>3</td><td>cc</td><td>烧热水</td><td><button class="edit">编辑</button><button class="delete">删除</button></td></tr><tr><td>4</td><td>dd</td><td>烧热水</td><td><button class="edit">编辑</button><button class="delete">删除</button></td></tr><tr><td>5</td><td>ee</td><td>喝热水</td><td><button class="edit">编辑</button><button class="delete">删除</button></td></tr></tbody>
</table><div class="cover hide"></div>
<div class="modal hide"><p><label for="modal-name">姓名</label><input id="modal-name" type="text" name="name"></p><p><label for="modal-hobby">爱好</label><input id="modal-hobby" type="text" name="hobby"></p><p><button id="modal-submit">提交</button><button id="modal-cancel">取消</button></p>
</div>
<script src="jquery-3.2.1.min.js"></script>
<script>// 弹出模态框函数function showModal() {$(".cover, .modal").removeClass("hide");}// 关闭模态框function hideModal() {$(".cover, .modal").addClass("hide");// 清空模态框里面的input$(".modal input").val("");}// 绑定事件$(document).ready(function () {// 添加按钮绑定事件$("#add-btn").on("click", function () {showModal();});// 模态框里面的取消按钮,绑定关闭模态框事件$("#modal-cancel").on("click", function () {hideModal();});// 表格中删除按钮绑定事件$("tbody").on("click", ".delete", function () {// this 当前点击的删除按钮// $(this)  --> 变成jQuery对象var $currentTr = $(this).parent().parent();// 更新当前行后面的所有tr的序号(tr的第一个td儿子)$currentTr.nextAll().each(function () {var $firstTd = $(this).children().first();// this -->  当前循环中的那个trvar currentNum = parseInt($firstTd.text()) - 1;$firstTd.text(currentNum);});// 删除当前行$currentTr.remove();});// 点击模态框里面的提交按钮,把数据添加到表格中$("#modal-submit").on("click", function () {// 获取模态框里面input的值var name = $("#modal-name").val();var hobby = $("#modal-hobby").val();// 如果是编辑操作,我应该去更新原来的td的值var $tds = $("#modal-submit").data("tds");if ($tds !== undefined) {// 能够取到$tds,表示我是一个编辑的操作// 更新$tds$tds.eq(1).text(name);$tds.eq(2).text(hobby);} else {// 取不到tds,表示我是一个新增的操作// 因为是新增操作,所以要创建新的tr// 创建tr标签var trEle = document.createElement("tr");// 获取当前表格里面所有的tr标签的个数,正好就是我新增tr的序号var currentNum = $("table tr").length;$(trEle).append("<td>" + currentNum + "</td>");$(trEle).append("<td>" + name + "</td>");$(trEle).append("<td>" + hobby + "</td>");$(trEle).append("<td>" + '<button class="edit">编辑</button> <button class="delete">删除</button>' + "</td>");// 把生成的tr标签添加到tbody的最后$(trEle).appendTo("tbody");}// 清空一下$tds$("#modal-submit").removeData("tds");// 隐藏模态框hideModal();});// 编辑按钮$("tbody").on("click", ".edit", function () {// 显示模态框showModal();// 取出当前行的数据,填写到模态框里面的input中// 1.取当前行的数据// this 当前点击的那个编辑按钮// 找到当前行所有的tdvar $tds = $(this).parent().parent().children();$("#modal-submit").data("tds", $tds);var name = $tds.eq(1).text();var hobby = $tds.eq(2).text();console.log(name, hobby);// 将取到的数据填写到模态框里面的input$("#modal-name").val(name);$("#modal-hobby").val(hobby);})})</script>
</body>
</html>

这篇关于jquery-事件、动画效果、each、.data()、表格增删改的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125172

相关文章

C#如何动态创建Label,及动态label事件

《C#如何动态创建Label,及动态label事件》:本文主要介绍C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#如何动态创建Label,及动态label事件第一点:switch中的生成我们的label事件接着,

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

css中的 vertical-align与line-height作用详解

《css中的vertical-align与line-height作用详解》:本文主要介绍了CSS中的`vertical-align`和`line-height`属性,包括它们的作用、适用元素、属性值、常见使用场景、常见问题及解决方案,详细内容请阅读本文,希望能对你有所帮助... 目录vertical-ali

浅析CSS 中z - index属性的作用及在什么情况下会失效

《浅析CSS中z-index属性的作用及在什么情况下会失效》z-index属性用于控制元素的堆叠顺序,值越大,元素越显示在上层,它需要元素具有定位属性(如relative、absolute、fi... 目录1. z-index 属性的作用2. z-index 失效的情况2.1 元素没有定位属性2.2 元素处

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Java利用poi实现word表格转excel

《Java利用poi实现word表格转excel》这篇文章主要为大家详细介绍了Java如何利用poi实现word表格转excel,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、每行对象类需要针对不同的表格进行对应的创建。package org.example.wordToEx

Vue 调用摄像头扫描条码功能实现代码

《Vue调用摄像头扫描条码功能实现代码》本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流... 目录实现步骤:代码实现1. 安装依赖2. vue 页面代码功能说明注意事项以下是一个基于 Vue.js

CSS @media print 使用详解

《CSS@mediaprint使用详解》:本文主要介绍了CSS中的打印媒体查询@mediaprint包括基本语法、常见使用场景和代码示例,如隐藏非必要元素、调整字体和颜色、处理链接的URL显示、分页控制、调整边距和背景等,还提供了测试方法和关键注意事项,并分享了进阶技巧,详细内容请阅读本文,希望能对你有所帮助...

使用EasyExcel实现简单的Excel表格解析操作

《使用EasyExcel实现简单的Excel表格解析操作》:本文主要介绍如何使用EasyExcel完成简单的表格解析操作,同时实现了大量数据情况下数据的分次批量入库,并记录每条数据入库的状态,感兴... 目录前言固定模板及表数据格式的解析实现Excel模板内容对应的实体类实现AnalysisEventLis