前后端分离之jQuery入门
jQuery入门
基本概念:jQuery是一个快速,小型且功能丰富的JavaScript库。借助易于使用的API(可在多种浏览器中使用),使HTML文档的遍历和操作,事件处理,动画和Ajax等事情变得更加简单。
个人理解:jQuery是js的一个库,本质就是封装好的js函数,可以和javascript一起使用,使用jQuery可以简化开发
1、加载方式:
传统的dom编程的方式
<script>
window.onload=function(){
alert("页面加载成功");
}
</script>
jquery 的方式
<script src="lib/jquery-1.8.0.js"></script>
<script>
$(function(){// '$' 可以换成 'jQuery'
alert("页面加载成功,jquery");
});
</script>
二者的区别:
1) window.onload 的方式,在页面完全加载成功(比如图片,框架集中的网页等)以后触发,而jquery的 $() 事件,是在页加载完以后就触发,不用等图片等相关资源加载完,也就是说,jquery的 $() 事件比较早。
2) window.onload,不可以迭加, 如果有多个,最后只会执行最后一个,而jquery的可以迭加
2、jquery中的遍历
1)$.map(array, fn(value,index){})array 是一个数组, fn 是一个函数 $.map 的作用就是对数组 array中的每个元素,调用 fn这个函数进行处理, 处理完以后,会返回一个新的数组
2)$.each(array, fn(index,value){})array 是一个数组, fn 是一个函数 $.each 的作用就是对数组 array 中的每个元素,调用 fn这个函数进行处理, 没有返回值
3、jquery对象和dom对象
dom 对象
就是传统的javascript中通过 dom api得到的对象
//获取dom对象 var dom1 = document.getElementById("h11"); console.log(dom1.innerText);
jquery 对象
通过jquery选择器,或用jquery包装普通的dom对象得到
//获取jquery对象 var jquery1 = $("#h11"); console.log(jquery1.text());
二者之间的转换:
1)dom对象转成jquery对象
//dom对象转成jquery对象
var jquery2 = $(dom1);
console.log(jquery2.html());
2)query对象,变成dom对象
//query对象,变成dom对象
var dom2 = jquery1.get(0);
//或者var dom2 = jquery1[0];
console.log(dom2.innerHTML);
附: 关于this
JavaScript this 关键词指的是它所属的对象。
在方法中,this 指的是所有者对象。
单独的情况下,this 指的是全局对象。
在函数中,this 指的是全局对象。
在函数中,严格模式下,this 是 undefined。
在事件中,this 指的是接收事件的元素。
4、jquery 选择器
基本 层级 定位 内容 可见性 属性 子元素 表单 表单属性
(1)基本
1. #id
2. element
3. class
4. *
5. selector1,selector12
(2)层级
1. ancestor descendant 选中ancestor里面的所有 descendant 元素,不管多少层级
2. parent > child 只选择直接子级
3. prev + next 匹配的是prev后面的所有 next元素
4. prev ~ siblings 选中prev的所有兄弟元素
(2)定位
1. :first //匹配找到的第一个元素
2. :last //匹配找到的第一个元素
3. :not(选择器) //反选(选取不符合某一组选择器的元素)
4. :odd //奇数(下标从0开始算)
5. :even //偶数(下标从0开始算)
6. :eq //等于(下标从0开始算)
7. :gt //大于(下标从0开始算)
8. :lt //小于(下标从0开始算)注::gt和:lt可以一起使用$("tr:gt(0):lt(2)").css("background","gold"); //选中的是第二,三 行
9. :header //匹配如 h1, h2, h3之类的标题元素
10. :animated //匹配正在做动画的元素
(4)内容
1. :contains
包含某文本元素
2. :empty
匹配所有空元素
3. :has(选择器)
包含某个子元素
4. :parent
匹配含有子元素或者文本的元素, (找做父亲的元素)
(5)可见性
(1) :hidden
匹配所有不可见元素 (display:none) ,包括隐含控件 (type = hidden)
(2) :visible
和上例相反
(6)属性 7 个
(1) [attribute=value] 匹配某个属性是某个值的元素
(2) [attribute!=value] 和上例相反
(3) [attribute$=value] 选择属性值以value结尾的
(4) [attribute^=value] 匹配以属性值 以value 开头的,正好和 $相反
(5) [attribute*=value] 匹配以属性值包含value的
(6) [selector1][selector2][selectorN] 复合的多条件属性选择器
(7) [attribute] 匹配含有这个属性的元素
(7)子元素
(1) :first-child 匹配其父元素下的第一个子元素
(2) :last-child 匹配其父元素下的最后一个子元素
(3) :nth-child 匹配其父元素下的第n个子元素((n=1,2,3,4...))或奇偶元素
注:此选择器下标从1开始,上述:even和:odd从0开始)
:nth-child(even)
:nth-child(odd)
:nth-child(3n)
:nth-child(2)
:nth-child(3n+1)
:nth-child(3n+2)
(4) :only-child 如果某个元素是父元素中唯一的子元素,那将会被匹配 (独生子)
(8)表单 11 个
(1):input 匹配所有 input, textarea, select 和 button 元素 请密切注意,它匹配 textarea,select,button
$(":input")
(2):checkbox 匹配所有复选框
$(":checkbox") = $("input[type=checkbox]")
(3):button 匹配所有按钮,但不匹配 input type="submit
$(":button")
(4):file 文件选择框
$(":file")
(5):image 所有图片
$(":image")
(6):radio 所有单选按钮
$(":radio")
(7):reset 所有重置按钮
$(":reset")
(8):password 所有密码框
$(":password")
(9):submit 所有的提交按钮
$(":submit")
(10):text 所有文本框
$(":text")
(9)表单属性 4个
(1) :enabled //选中有enabled属性的元素(enabled表示任何已启用的元素。如果元素可以被激活(例如被选择、单击、输入文本等),或者能够获得焦点,那么它就是启用的。)
(2) :checked //选中有checked属性的元素(checked表示在页面加载时应该预先选定 input 元素)
(3) :disabled //选中有disabled属性的元素(disabled表示元素不可变、不能聚焦或与表单一同提交
(4) :selected //选中有selected属性的元素(selected表示在页面加载时应预先选择一个选项。预先选择的选项将首先显示在下拉列表中)
5、jquery常用方法
(1)节点遍历
next() //选择下一个元素
nextAll() //选择当元素后的所有元素
siblings() //选择所有兄弟元素
(2)jquery的dom节点操作
1.内部插入元素
append() //从后面插入
prepend() //从前面插入
appendTo() //从后面插入到元素中
prependTo() //从前面插入到元素中
注:append()和appendTo()的区别:a.append(b)是在a中插入b;a.appendTo(b)是a插入到b中去。prepend和prependTo同理
2.外部插入元素
before() //插入到当前元素的前面
after() //插入到当前元素的后面
这两个方法,都是添加的 "兄弟"
3.移除
remove()
从dom中删除所匹配的元素,但这个方法不会把匹配的元素从jquery对象中删除,这样我们将来还可以使用这些对象,但这些元素对应的数据和事件会丢失
empty()
清空元素中的子节点
detach()
从dom节点中删除匹配元素,但不会把元素从jquery对象中删除,以后还可以用,而且它绑定的数据和事件不会丢失
(3)jquery中的属性操作
attr(key,value) //给某个属性传值
attr(key) //取某个属性的值
attr(properties) //给某个属性传一组值
remveAttr(key) //移除某个属性值
(4)jquery中的css操作
.css(k,v) //一个个的设置css样式
.addClass(class名称); //添加一组样式
.removeClass(class名称); //移除样式
.toggleClass(class名称); //切换样式
注:removeClass() 如果传入样式名,则移除样式名对应的样式,如果不传入,则移除所有的 class 样式
(5)query对文本/值的操作
//给表单元素的value 的取值或传值
val()
val(v)
//给 div ,span,td,a, li,p 之类的元素取值或传值
html()
html(v)
//给 div ,span,td,a, li,p 之类的元素取值或传值,取值的时候,不取html元素,只取文本
text()
text(v)
注:text(v)、html(v)会将 标签中的'文本和标签' 替换成 v
(6)动态效果
show() 显示(可选择的参数 speed,easing,callback)
hide() 隐藏(可选择的参数 speed,easing,callback)
toggle() 显示/隐藏(可选择的参数 speed,callback,switch)
注:show()、hide()、toggle() 沿对角线消失或出现
fadeIn() 淡入(可选择的参数 speed,callback)
fadeOut() 淡出(可选择的参数 speed,callback)
slideUp() 滑动向上隐藏(可选择的参数 speed,callback)
slideDown() 滑动向下出现(可选择的参数 speed,callback)
传递的参数:
speed 显示效果的速度(可以是毫秒值、"slow"、"fast")
easing 在动画的不同点上元素的速度("swing"--开头/结尾移动慢,中间移动快、"linear"--匀速移动;默认是"swing")
callback 回调 (方法调用之后,要执行的函数)
switch 取值true 即 toggle(true) 表示只会显示元素,等同于show();取值false 即 toggle(false) 表示只会隐藏元素,等同于hide()
牛刀小试:
案例:现在有一个数组,有十条数据 var userList= [{id:10,userName:"admin",password:"123",note:"管理员",photo:"a.jpg"},{....},{}]
要求
1)用jquery把这个数组,构造出一个表格,显示出 id, userName 两列
2)隔行变色
3)鼠标滑过行高亮
4)鼠标滑过人的信息的时候, 在鼠标边上,显示这个人的头象,和其他信息(密码,备注)
本文案例及源代码:
链接:https://pan.baidu.com/s/14Ppk6verYinQBVNXv-cxvg?pwd=5u4e
提取码:5u4e
前后端分离之jQuery入门的更多相关文章
- 一个Java程序猿眼中的前后端分离以及Vue.js入门
松哥的书里边,其实有涉及到 Vue,但是并没有详细说过,原因很简单,Vue 的资料都是中文的,把 Vue.js 官网的资料从头到尾浏览一遍该懂的基本就懂了,个人感觉这个是最好的 Vue.js 学习资料 ...
- 《Spring Boot 入门及前后端分离项目实践》系列介绍
课程计划 课程地址点这里 本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 个部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 项目实践开发 ...
- 《Spring Boot 入门及前后端分离项目实践》目录
开篇词:SpringBoot入门及前后端分离项目实践导读 第02课:快速认识 Spring Boot 技术栈 第03课:开发环境搭建 第04课:快速构建 Spring Boot 应用 第05课:Spr ...
- SpringBoot 和Vue前后端分离入门教程(附源码)
作者:梁小生0101 juejin.im/post/5c622fb5e51d457f9f2c2381 推荐阅读(点击即可跳转阅读) 1. SpringBoot内容聚合 2. 面试题内容聚合 3. 设计 ...
- 用jQuery怎么做到前后端分离
传统的web开发模式想必大家都知道,不管是jsp.asp.php或者一些魔板引擎开发,其实道理都是一样的,都是服务端渲染,原理是:浏览器发送一个get请求,服务器对应的返回前端一个html页面,由浏览 ...
- 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之十一 || AOP自定义筛选,Redis入门 11.1
代码已上传Github+Gitee,文末有地址 书说上文<从壹开始前后端分离[ .NET Core2.0 Api + Vue 2.0 + AOP + 分布式]框架之十 || AOP面向切面编程浅 ...
- shiro,基于springboot,基于前后端分离,从登录认证到鉴权,从入门到放弃
这个demo是基于springboot项目的. 名词介绍: ShiroShiro 主要分为 安全认证 和 接口授权 两个部分,其中的核心组件为 Subject. SecurityManager. Re ...
- 前后端分离-模拟数据之RAP2快速入门
是啥? RAP是一个可视化接口管理工具 通过分析接口结构,动态生成模拟数据,校验真实接口正确性, 围绕接口定义,通过一系列自动化工具提升我们的协作效率.我们的口号:提高效率,回家吃晚饭! 可视化编辑, ...
- nodeJS(express4.x)+vue(vue-cli)构建前后端分离详细教程(带跨域)
好想再回到大学宿舍,当时床虽小,房随小,但是心确是满的 ----致 西安工程大学a-114舍友们 转载请注明出处:水车:http://www.cnblogs.com/xuange306/p/6185 ...
- 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之十二 || 三种跨域方式比较,DTOs(数据传输对象)初探
更新反馈 1.博友@落幕残情童鞋说到了,Nginx反向代理实现跨域,因为我目前还没有使用到,给忽略了,这次记录下,为下次补充.此坑已填 2.提示:跨域的姊妹篇——<三十三║ ⅖ 种方法实现完美跨 ...
随机推荐
- Docker从认识到实践再到底层原理(三)|Docker在Centos7环境下的安装和配置
前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总 然后就是博主最近最花时间的一 ...
- Vulkan学习苦旅03:零号显卡,启动!(选择物理设备VkPhysicalDevcie)
随着近几年AI的迅速发展,GPU变得越来越抢手.然而,GPU的全称为Graphics Processing Unit, 从名字中就可以看出,GPU是为了处理图形而诞生的,后来才被应用到科学计算等领域中 ...
- Google_Book_20Things.前言以及前四项学习笔记
20 THINGS I LEARNED ABOUT BROWSERS AND THE WEB Illustrated by Christoph Niemann. Written by the Goog ...
- 转载洛谷:23.08.19 普及模拟1 T1
Past 题目描述 所有人,都有一段支离破碎的过去. 你有\(n\)段过去的经历,有时顺利,有时不顺,于是你用一个评价值\(a_i\)来描述你的第\(i\)段经历,它们构成了长度为\(n\)的序列\( ...
- 【架构师视角系列】QConfig配置中心系列之架构设计(一)
目录 声明 配置中心系列文章 一.架构 基础模型 架构图 架构分层 运行规则 模块划分 Admin模块 Client模块 Server模块 二.总结 三.最后 声明 原创文章,转载请标注.https: ...
- SSD 简介—— NAND 芯片介绍
制作 存储芯片的制作和其他芯片制作大致相同,从沙子中提取单晶硅制作晶圆再封装芯片. 闪存芯片从架构上分为NOR和NAND NOR Flash的source line把每个cell都并联起来,而NAND ...
- Kafdrop
Kafdrop 是一个用于查看 Kafka 主题和浏览消费者组的 Web UI docker run -d --rm -p 9000:9000 \ -e KAFKA_BROKERCONNECT=hos ...
- Ubuntu下通过Wine安装LTSpice 17.1.8
LTSpice LTSpice 是常用的电路模拟软件, 但是只有 Windows 版本和 Mac 版本, 在 Linux 下需要用 Wine 运行. 以下说明如何在 Ubuntu 下安装最新的 LTS ...
- Java并发编程实例--14.在一个同步类中安排独立属性
当你使用synchronized关键字去保护一个代码块时,你必须传入一个对象的引用. 正常来讲,你讲使用this关键字去引用执行这个方法的对象,但是你可以使用其他对象的引用. 通常的,这些对象将会是专 ...
- 构建SatelliteRpc:基于Kestrel的RPC框架(整体设计篇)
背景 之前在.NET 性能优化群内交流时,我们发现很多朋友对于高性能网络框架有需求,需要创建自己的消息服务器.游戏服务器或者物联网网关.但是大多数小伙伴只知道 DotNetty,虽然 DotNetty ...