博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端基础之jQuery入门 01
阅读量:6713 次
发布时间:2019-06-25

本文共 11291 字,大约阅读时间需要 37 分钟。

jQuery介绍

  1. jQuery是一个轻量级的、兼容多浏览器的JavaScript库。
  2. jQuery使用户能够更方便地处理HTML Document、Events、实现动画效果、方便地进行Ajax交互,能够极大地简化JavaScript编程。它的宗旨就是:"Write less, do more."

优势

  1. 一款轻量级的JS框架。jQuery核心js文件才几十kb,不会影响页面加载速度。
  2. 丰富的DOM选择器,jQuery的选择器用起来很方便,比如要找到某个DOM对象的相邻元素,JS可能要写好几行代码,而jQuery一行代码就搞定了,再比如要将一个表格的隔行变色,jQuery也是一行代码搞定。
  3. 链式表达式。jQuery的链式操作可以把多个操作写在一行代码里,更加简洁。
  4. 事件、样式、动画支持。jQuery还简化了js操作css的代码,并且代码的可读性也比js要强。
  5. Ajax操作支持。jQuery简化了AJAX操作,后端只需返回一个JSON格式的字符串就能完成与前端的通信。
  6. 跨浏览器兼容。jQuery基本兼容了现在主流的浏览器,不用再为浏览器的兼容问题而伤透脑筋。
  7. 插件扩展开发。jQuery有着丰富的第三方的插件,例如:树形菜单、日期控件、图片切换插件、弹出窗口等等基本前端页面上的组件都有对应插件,并且用jQuery插件做出来的效果很炫,并且可以根据自己需要去改写和封装插件,简单实用。4

选择

  • 1.x:兼容IE678,使用最为广泛的,官方只做BUG维护,功能不再新增。因此一般项目来说,使用1.x版本就可以了,最终版本:1.12.4 (2016年5月20日)
  • 2.x:不兼容IE678,很少有人使用,官方只做BUG维护,功能不再新增。如果不考虑兼容低版本的浏览器可以使用2.x,最终版本:2.2.4 (2016年5月20日)
  • 3.x:不兼容IE678,只支持最新的浏览器。需要注意的是很多老的jQuery插件不支持3.x版。目前该版本是官方主要更新维护的版本。

维护IE678是一件让人头疼的事情,一般我们都会额外加载一个CSS和JS单独处理。值得庆幸的是使用这些浏览器的人也逐步减少,PC端用户已经逐步被移动端用户所取代,如果没有特殊要求的话,一般都会选择放弃对678的支持。

jQuery对象

jQuery对象就是通过jQuery包装DOM对象后产生的对象。jQuery对象是 jQuery独有的。如果一个对象是 jQuery对象,那么它就可以使用jQuery里的方法:例如$(“#i1”).html()。

$("#i1").html()的意思是:获取id值为i1的元素的html代码。其中html()是jQuery里的方法。

相当于:document.getElementById("i1").innerHTML;

虽然jQuery对象是包装DOM对象后产生的,但是jQuery对象无法使用DOM对象的任何方法,同理DOM对象也没不能使用jQuery里的方法。

一个约定,我们在声明一个jQuery对象变量的时候在变量名前面加上$:

var $variable = jQuery对像var variable = DOM对象$variable[0]  //jQuery对象转成DOM对象
View Code

拿上面那个例子举例,jQuery对象和DOM对象的使用:

$("#i1").html();  //jQuery对象可以使用jQuery的方法$("#i1")[0].innerHTML;  // DOM对象使用DOM的方法

jQuery语法

基本语法如下:

$(selector).action()

有如下一个约定,我们在声明一个jQuery对象变量时候,在变量名前加上$符号,如下实例:

var $variable=jQuery对象var variable = DOM对象$variable[0]  //jQuery对象转成DOM对象

选择器

基本选择器

id选择器:        $("#id值")class选择器:    $(".c1")所有元素选择器: $("*")标签名选择器:   $("div")组合选择器:      $("#i1, p")

层级选择器

  下述中x和y可以是任意选择器:

后代选择器:         $("x 空格 y")---x的所有后代y(子子孙孙)儿子选择器:         $("x  > y")---x的所有儿子y(儿子)毗邻选择器:         $("x +y")---找到所有紧挨在x后面的y兄弟选择器:         $("x ~y")---x之后所有的兄弟y

属性选择器

  注意:双引号里面用单引号

[attribute]                     //具有属性[attribute=value]            // 属性等于[attribute!=value]           // 属性不等实例:$("input[type='checkbox']");   // 取到checkbox类型的input标签$("input[type!='text']");        // 取到类型不是text的input标签 注意当外层引用了双引号,内层应换为单引号
实例:$("input[type='checkbox']");    // 取到checkbox类型的input标签$("input[type!='text']");       // 取到类型不是text的input标签

 

例子:

    
属性选择器
lihsi
View Code

 

 

基本筛选器

  下述基本筛选器主要用在选择器内对选择器做进一步筛选,介绍如下:

:first                 // 第一个:last                 // 最后一个:eq(index)        // 索引等于index的那个元素:even              // 匹配所有索引值为偶数的元素,从 0 开始计数:odd               // 匹配所有索引值为奇数的元素,从 0 开始计数:gt(index)        // 匹配所有大于给定索引值的元素:lt(index)        // 匹配所有小于给定索引值的元素:not(元素选择器)// 移除所有满足not条件的标签:has(元素选择器)// 选取所有包含一个或多个标签在其内的标签(指的是从后代元素找)

例子:

    
表格隔行变色
# 姓名 年龄
1 jassin 22
2 lishi 21
3 Acer 21
1 jassin 22
2 lishi 21
3 Acer 21
1 jassin 22
2 lishi 21
3 Acer 21
表格隔行变色
    
has问题解决
1span 0
span 1

 not与has

// 注意://   1、这里的has和not不是有和没有的意思,之间没什么意思//    2、:not和:has通常用.not() 和.has()代替。//    3、$("div:has(.c1)") 等价于$("div .c1")并不等价于$("div.c1")

 

not:            写在引号里面的:        --> $("#my-checkbox input:not(:checked)")            写在外面当方法用的      --> $("#my-checkbox input").not(":checked")            has:            写在引号内表示有什么的  --> $("label:has('input')")            写在外面当方法用的:    --> $("label").has("input")

 

    
03 支持批量操作
div 0
div 1

p 0

p 1

p 2

批量操作

 

(1)DOM对象与jQuery对象之间转换

当DOM转换为jQuery对象的变量名前加 $ 前缀,表示该变量名为jQuery对象

    
转换
我是div标签
View Code

 

表单常用筛选

:text:password:file:radio:checkbox:submit:reset:button

 

表单对象属性

:enabled:disabled:checked:selected

例子:、

    
表单对象示例123-----------------$(":selected") // 找到所有被选中的option

筛选器方法

找下一个元素:

$("#id").next()$("#id").nextAll()$("#id").nextUntil("#i2")

找上一个元素:

$("#id").prev()$("#id").prevAll()$("#id").prevUntil("#i2")

例子

    
上一个标签与下一个标签
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
------------------------------------------------$("#i5").next() // 找i5下一个$("#i5").nextAll() // 找i5下面的所有 (不包括i5)$("#i5").nextUntil("#i9") // 找i5下面的值,直到找到i9就结束(不包括i9)// 找前面$("#i5").prev()$("#i5").prevAll()$("#i5").prevUntil("#i2") // 不包括i2

 

找父标签:

$("#id").parent()$("#id").parents()  // 查找当前元素的所有的父辈元素$("#id").parentsUntil() // 查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止。

例子:

 

 

    
parent示例
# 姓名 爱好 操作
1 Egon 杠娘
2 Alex 吹牛逼
3 Yuan 日天
表单的删除按钮

 

找兄弟标签:

查找所有兄弟标签:    $("div").siblings()

找儿子标签:

$("div").children(".test")

查找标签

$("div").find(".test") // 搜索所有与指定表达式匹配的元素。这个函数是找出正在处理的元素的后代元素的好方法

从一个范围里找

补充:

.first()// 获取匹配的第一个元素.last()// 获取匹配的最后一个元素.not()// 从匹配元素的集合中删除与指定表达式匹配的元素.has()// 保留包含特定后代的元素,去掉那些不含有指定后代的元素。

 

$("div").not(".c2")   // 找到所有div,再把有.c2去掉                            // not是从当前找的div里面找                          //  has是从后代里面找

 

左侧菜单

    
左侧菜单示例
菜单一
111
222
333
菜单二
111
222
333
菜单三
111
222
333

p

View Code

操作标签

样式操作

样式类

addClass();// 添加指定的CSS类名。removeClass();// 移除指定的CSS类名。hasClass();// 判断样式存不存在toggleClass();// 切换CSS类名,如果有就移除,如果没有就添加。

例子:

    
Title
开关灯

 

 css

css("color","red")//DOM操作:tag.style.color="red"
$("").css("color", "red")  --> .css({"color": "red", "border": "1px solid black"})

 

示例:

$("p").css("color", "red"); //将所有p标签的字体设置为红色

位置:

position(区别)     1. fixed     2. relative   --> 相对位置,相对自己原来应该在的位置     3. absolute   --> 绝对位置,相对上一级相对定位过的父标签     4. static

 

jQuery: offset()// 获取匹配元素在当前视口的相对偏移position()// 获取匹配元素相对父元素的偏移scrollTop()// 获取匹配元素相对滚动条顶部的偏移scrollLeft()// 获取匹配元素相对滚动条左侧的偏移
.offset()方法允许我们检索一个元素相对于文档(document)的当前位置。和 .position()的差别在于: .position()是相对于相对于父级元素的位移。

示例:

offset()和position():

    
Title

scrollTop() :获取匹配元素相对滚动条顶部的偏移;$(window).scroll() : 滚动触发,具体应用见如下返回顶部的实例:

  
位置相关示例之返回顶部
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
返回顶部示例

尺寸操作

height()width()innerHeight()  // 内填充innerWidth()outerHeight()  // 外填充outerWidth()

例子:

    
Title

文本操作

HTML代码:

html()// 取得第一个匹配元素的html内容html(val)// 设置所有匹配元素的html内容

文本值:

text()// 取得所有匹配元素的内容text(val)// 设置所有匹配元素的内容
    
Title
111
222
333
444
555

值:

val()// 取得第一个匹配元素的当前值val(val)// 设置所有匹配元素的值val([val1, val2])// 设置checkbox、select的值
    
Title check1 check2
radio1
radio2
radio3
城市
北京市
上海市
广州市
深圳市

爱好
篮球
足球
双色球

爱好

性别

val赋值示例
  
文本操作之登录验证
自定义登录校验示例

属性操作

val() ---> input框 、 多选的select    *****取值是默认取第一个匹配元素的值*****    *****设置值是设置所有的标签的值*****attr()    获取ID、自定义属性prop()    推荐用于获取和设置checkbox和radio的值

 

转载于:https://www.cnblogs.com/jassin-du/p/8177394.html

你可能感兴趣的文章
Android实现左右滑动指引效果
查看>>
html里frame导航框架实现方法
查看>>
shell编程系列5--数学运算
查看>>
在 UWP 应用中创建、使用、调试 App Service (应用服务)
查看>>
Active MQ C#实现
查看>>
C#实现秒表程序
查看>>
P4377 [USACO18OPEN]Talent Show
查看>>
多线程 售票 (同步)
查看>>
cJSON 使用笔记
查看>>
CF1163E Magical Permutation
查看>>
指针与数组区别
查看>>
showModalDialog关闭子窗口,并刷新父窗口
查看>>
我的Java开发学习之旅------>解惑Java进行三目运算时的自动类型转换
查看>>
【我的Android进阶之旅】解决strings.xml格式化占位符错误: Multiple substitutions specified in non-positional format...
查看>>
测试工程师常用的工具
查看>>
【已解决】如图,说我磁盘不够,看到var目录下有的个隐藏文件夹占了46G,不知道怎么删除...
查看>>
vmware网络的连接方式
查看>>
AngularJs的UI组件ui-Bootstrap分享(五)——Pager和Pagination
查看>>
Python基础21_类与类型, MRO, C3算法, super()
查看>>
IBM磁盘阵列及文件系统的管理
查看>>