【笔记】jQuery 学习笔记

前言

jQuery学习笔记

jQuery基础

下载的版本

  • jquery-3.3.1.min.js
    压缩版(发布版)

  • jquery-3.3.1.js
    常规版(开发版)

开发工具

预加载函数

  • 写在<script></script>标签内,如果写在<head></head>标签内需要预加载函数

第一种写法

1
2
3
4
5
6
7
8
<head>
<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
<script>
jQuery(document).ready(function(){
...
})
</script>
</head>

第二种写法

1
2
3
4
5
6
7
8
<head>
<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
<script>
$(document).ready(function(){
...
})
</script>
</head>

第三种写法

1
2
3
4
5
6
7
8
<head>
<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
<script>
jQuery(function(){
...
})
</script>
</head>

第四种写法

1
2
3
4
5
6
7
8
<head>
<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
<script>
$(function(){
...
})
</script>
</head>

Dom对象和jquery对象的转换

  • Dom对象->jquery对象
1
$(Dom对象)
  • jquery对象->Dom对象
1
2
jquery对象[0]
jquery对象.get(0)

jQuery选择器*

基本选择器

标签选择器

1
$("标签名")

类选择器(.)

1
$(".class值")

id选择器(#)

1
$("#id值")

并集选择器(,)

1
$(".class值, #id值")

交集选择器(相连)

1
$(".class值#id值")

全局选择器(*)

1
$("*")

层次选择器

相邻选择器(+)

  • 只选后面的
1
$("选择器1+选择器2")

同辈选择器(~)

  • 只选后面的
1
$("选择器1~选择器2")

后代选择器(空格)

1
$("选择器1 选择器2")

子代选择器(>)

1
$("选择器1>选择器2")

兄弟选择器

选中后面紧邻的兄弟元素

1
$("#example").next("span")

选中前面紧邻的兄弟元素

1
$("#example").prev("span")

选中所有后面的兄弟元素

1
$("#example").nextAll("span")

选中所有前面的兄弟元素

1
$("#example").prevAll("span")

选中所有前后的兄弟元素

1
$("#example").siblings("span")

属性选择器([…])

<key>:属性名
<value>:属性值

选中有指定属性名的元素

1
$("[<key>]")

选中有指定属性名和指定属性值的元素

1
$("[<key>=<value>]")

选中有指定属性名但没有指定属性值的元素

  • 选中有指定属性名但没有指定属性值的元素
  • 选中没有制定属性名的元素
1
$("[<key>!=<value>]")

选中制定属性名有以指定关键字开头的元素

1
$("[<key>^=<value>]")

选中制定属性名有以指定关键字结尾的元素

1
$("[<key>$=<value>]")

选中制定属性名有包含指定关键字的元素

1
$("[<key>*=<value>]")

过滤选择器(:)

最开头那一个

1
:first

最后那一个

1
:last

偶数

1
:even

奇数

1
:odd

第index个

1
:eq(index)

大于index的全部元素

1
:gt(index)

小于index的全部元素

1
:lt(index)

除了…以外的

1
:not(选择器)

选中所有的标题元素

1
:header

获取当前焦点的元素

1
:focus

可见性选择器

  • 选中所有可见的元素
1
:visible
  • 选中所有隐藏的元素
1
:hidden

表单选择器

匹配所有”input”、”textarea”、”select”、”button”

1
2
3
4
5
6
:input
$(":input").each(function(index, elemet){
if(index==0){
}else if(index==1){
}
})

匹配所有单行文本框

1
:text

匹配所有密码框

1
:password

匹配所有单选按钮

1
:radio

匹配所有复选框

1
:checkbox

匹配所有提交按钮

1
:submit

匹配所有图像

1
:image

匹配所有重置按钮

1
:reset

匹配所有按钮

1
:button

匹配所有文件域

1
:file

匹配所有不可见元素

1
:hidden

jQuery事件

1
2
3
4
5
$(document).ready(function(){
$(选择器).事件类型(function(){
...
})
})

绑定事件与移除事件

1
2
$(...).bind("事件名", [数据], 函数)
$(...).unbind("事件名")

批量绑定

1
2
3
4
5
$(...).bind({
"事件名":函数,
"事件名":函数,
...
})

windows事件

1
ready()

鼠标事件

单击事件

1
click()

鼠标移动

1
mousemove()

移入和移出

1
2
mouseenter()
mouseleave()

悬浮和离开

1
2
mouseover()
mouseout()

键盘事件

按压、按到底、松开

1
2
3
keydown()
keypress()
keyup()
通过event.keyCode指定具体的按键
1
2
3
4
5
$("body").keydown(function(event){
if(event.keyCode == 13){
alert("回车")
}
})

表单事件

获取焦点和失去焦点

1
2
focus()
blur()

拖动条事件

1
input()

下拉列表框选中项改变事件

1
change()

复合事件

切换使用mouseover()mouseout()

1
hover(function1, function2)

多个click()事件

1
toggle(function1, function2, ...)

toggle()还有其他含义(隐藏与显示)

显示和隐藏

  • 通过向上滑动和向下滑动动态改变高度

<num>:执行时间
function() {}:特效执行后立即执行函数(可以省略)

1
2
slideUp(<num>, function() {})
slideDown(<num>, function() {})

切换显示和隐藏

1
2
toggle()
slideToggle()

淡入和淡出

  • 动态改变透明度
1
2
fadeIn(<num>, function() {})
fadeOut(<num>, function() {})

操作DOM

CSS

设置css()

1
2
3
4
5
6
jquery对象.css("属性名", "属性值")
jquery对象.css({
"属性名":"属性值",
"属性名":"属性值",
...
})

追加或移除样式class

1
2
3
4
addClass("x")
addClass("x x x")
removeClass(x)
removeClass(x x)
移除全部
1
removeClass()
切换移出和追加
1
toggleClass("x x x")

内容操作

获取和修改值

  • 包括标签
1
2
html()
html(xxx)

获取和修改值

  • 仅文本
1
2
text()
text(xxx)

获取和修改value属性值

1
2
val()
val(xxx)

节点操作

查询节点

1
(jquery选择器)

创建节点

1
$div = $(<div></div>)

插入节点

内部插入
将B追加到A中(首)
1
2
$(A).append(B)
$(B).appendTo(A)
将B追加到A中(尾)
1
2
$(A).prepend(B)
$(B).prependTo(A)
外部插入
将B插入到A后
1
2
$(A).after(B)
$(B).insertAfter(A)
将B插入到A前
1
2
$(A).before(B)
$(B).insertBefore(A)

替换节点

  • 将B替换到A
1
2
$A.replaceWith($B)
$B.replaceAll($A)

删除节点

删除节点
  • 将节点删除,但关联的事件、数据不会删除
1
datech()
彻底删除
1
remove()
只删除内容
1
empty()

克隆节点

克隆节点和相关事件
1
clone(true)
只克隆节点,不克隆事件
1
clone(false)

属性操作

获取属性值

1
attr("属性名")

设置属性值

1
2
3
4
5
6
attr("属性名", "属性值")
attr({
"属性名":"属性值",
"属性名":"属性值",
...
})

删除属性值

1
removeAttr("属性名")

jquery1.6新特性

获取属性值
1
prop("属性名")
修改或设置属性值
1
2
3
4
5
6
prop("属性名", "属性值")
prop({
"属性名":"属性值",
"属性名":"属性值",
...
})
attr()和prop()的区别
  • attr()函数在jquery1.6之前就有,对自定义属性的操作,使用attr()函数
  • prop()函数在query1.6之后新引进,对固有属性的操作,使用prop()函数

绑定数据

新增或修改绑定的数据

<key>:绑定的数据名
<value>:绑定的数据值

1
$(...).data(<key>,<value>)

查看绑定的数据

1
$(...).data(<key>)

删除所有绑定的数据

1
$(...).removeData()

获取集合与遍历集合

子节点集合

1
2
$(...).children(...)
$(...).children()

后代集合

1
2
$(...).find(...)
$(...).find()

同辈集合

  • 后一个
1
next()
  • 前一个
1
prev()
  • 同辈
1
siblings()

前辈集合

  • 父代
1
parent()
  • 祖先
1
parents()

过滤集合

  • 很多方法的”()”就是一个过滤选择器
1
filter("选择器")

遍历集合

1
2
3
$(...).each(function(index, element){
...
})

CSS-Dom操作

1
2
height()
height(xxx)

1
2
width()
width(xxx)

偏移量

1
2
3
4
5
6
offset()
offset(function(index, oldOffset){
var newOffset.left = new Object()
newOffset.left = oldOffset.left+100
newOffset.right = oldOffset.right+100
}

获取已定位的最近的祖先元素

1
offsetParent()

滚动条水平定位

1
scrollLet()

滚动条垂直定位

1
scrollTop()

表单校验

  • 当失去焦点时触发
1
blur(function(){})
  • 当点击按钮时触发

通过返回的布尔值,告知程序是否校验成功,决定表单是否跳转

1
submit(function(){})
  • 正则表达式

返回布尔值

1
正则表达式.test(xxx)

完成

参考文献

哔哩哔哩——DT课堂原名颜群
脚本之家
哔哩哔哩——web前端小清风