前后端分离之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.提示:跨域的姊妹篇——<三十三║ ⅖ 种方法实现完美跨 ...
随机推荐
- 2022 JuiceFS 社区用户调研结果出炉
为了使 JuiceFS 的发展更贴合用户的真实需求,我们在三周前向社区发出了一份调研问卷.此次调研面向已经将 JuiceFS 应用于生产环境的用户,了解其在应用 JuiceFS 前和使用中的体验与评价 ...
- 零基础入门学习Java课堂笔记 ——day01
Java语法 1.注释.标识符.关键字 注释 不会被程序执行的代码或者块 //双斜杠表示单行注释 /*表示多行注释*/ 标识符.关键字 关键词系统事先定义好的,我们能直接拿来用的,不能作为变量名使用 ...
- electron、nodejs、typescript、idea 组合开发,安装和配置 以及错误 等 详细说明
1. 创建项目,创建时 选择 nodejs 项目,因为 开发 electron 与 开发 nodejs 基本一致. 2.安装 electron npm i -D electron@beta 看目录 ...
- sshd命令-测试sshd_config配置是否正确
sshd命令来自于英文词组"SSH daemon"的缩写,其功能是用于openssh服务器守护进程.openssh套件能够为两台主机之间建立加密的.可信任的数据通信服务,是rlog ...
- NOI 2019 补全记录
D1T1 回家路线 好久之前写的,忘了具体细节,但是发现有平方项所以考虑拆项之后斜率优化. D1T2 机器人 考虑 DP. 记 \(f_{l,r,i}\) 表示 \([l,r]\) 这段区间,最大值为 ...
- Java设计模式-解释器模式Interpreter
介绍 在编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法 分析树,最终形成一颗抽象的语法分析树.这里的词法分析器和语法分析器都可以看做是解释器 解释器模式 ...
- Springboot AOP介绍及实战
介绍 AOP是Aspect Oriented Program的首字母缩写:这种在运行时,动态地将代码切入到类的指定方法.指定位置上的编程思想就是面向切面的编程. 主要用于非核心业务处理,比如权限,日志 ...
- win32 - this 指针
this指针是存在与类的成员函数中,指向被调用函数所在的类实例的地址. 根据以下程序来说明this指针, #include<iostream.h> class Point { int x, ...
- 链表--insert
分别是使用了二级指针和一级指针的两种方法,最后会按插入的顺序依次打印1,2,3,4 主要区别在于,使用二级指针,可以在main函数里直接用一个空的Node指针,而一级指针是在main函数里面先添加了一 ...
- Ansible原理和安装
目录 Ansible Ansible简介 Ansible的特性 Ansible的基本组件 Ansible安装(rhel8/rhel9) 1. rhel8安装 1.1 配置epel源 1.2 安装ans ...