JQuery的基本使用
前言:JQ…被时代淘汰的三分前端库,也曾一度封神
JQuery是什么
JQuery是轻量级、快速、简洁的脚本库,它对Js进行了封装,简单来说就是可以用更少的代码做更多的事情。
中文API手册:https://jqueryapi.net/
速查表:https://www.bejson.com/apidoc/jquery/
JQuery的下载和安装
下载 JQuery
有两个版本的 JQuery 可供下载:
- Production version - 用于实际的网站中,已被精简和压缩。
- Development version - 用于测试和开发(未压缩,是可读的代码)
以上两个版本都可以从 jquery.com 中下载。
Juery 库是一个 JavaScript 文件,您可以使用 HTML 的 <script>
标签引用它:
1 | <head> |
通过 CDN引用JQ
- Staticfile CDN:
1 | <head> |
- 百度 CDN:
1 | <head> |
- 又拍云 CDN:
1 | <head> |
JQuery对象
JQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。
基础语法: $(*selector*).*action*()
- 美元符号定义 JQuery
- 选择符(selector)”查询”和”查找” HTML 元素,类似于querySelector()
- selector为选择器,比如我要选择id=”test”的元素,那么我可以这样操作,$(“#test”),又或者我选择class=”wrap”的元素,那么就是$(“.wrap”)
- JQuery 的 action() 执行对元素的操作
实例:
- $(this).hide() - 隐藏当前元素
- $(“div”).hide() - 隐藏所有
<div>
元素 - $(“div.test”).hide() - 隐藏所有 class=”test” 的
<div>
元素 - $(“#test”).hide() - 隐藏 id=”test” 的元素
JQuery 入口函数:
1 | $(document).ready(function(){ |
JavaScript 入口函数:
1 | window.onload = function () { |
JQuery 入口函数与 JavaScript 入口函数的区别:
- JQuery 的入口函数是在 html 所有标签(DOM)都加载之后,就会去执行。
- JavaScript 的 window.onload 事件是等到所有内容,包括外部图片之类的文件加载完后,才会执行。
JQuery选择器
- JQuery 选择器基于元素的 id、类、类型、属性、属性值等”查找”(或选择)HTML 元素。
- 它基于已经存在的 CSS 选择器,除此之外,它还有一些自定义的选择器。
- JQuery 中所有选择器都以美元符号开头:$()。
基础选择器
JQuery 使用 CSS 选择器来选取 HTML 元素。
语法 | 描述 |
---|---|
$(“*”) | 选取所有元素 |
$(“#test”) | 选择id值为test的元素,id值是唯一的所以返回单个元素 |
$(“div”) | 选择所有 <div> 元素 |
$(“.myclass”) | 选择使用myclass类的css的所有元素 |
$(“#test,div,.myclass”) | 选取多个元素 |
$(“p.intro”) | 选取所有 class=”intro”的<p> 元素 |
$(“p#demo”) | 选取所有 id=”demo”的<p> 元素 |
实例1:
当用户点击按钮后,有 id=”test” 属性的元素将被隐藏:
1 | $(document).ready(function(){ |
实例2:
用户点击按钮后所有带有 class=”test” 属性的元素都隐藏:
1 | $(document).ready(function(){ |
层次选择器
语法 | 描述 |
---|---|
$(“div span”) | 选取<div> 里的所有<span> 元素 |
$(“div >span”) | 选取<div> 元素下元素名是<span> 的子元素 |
$(“#one +div”) | 选取id为one的元素的下一个<div> 同辈元素,等同于$(“#one”).next(“div”) |
$(“#one~div”) | 选取id为one的元素的元素后面的所有<div> 同辈元素,等同于$(“#one”).nextAll(“div”) |
$(“#one”).siblings(“div”) | 获取id为one的元素的所有<div> 同辈元素(不管前后) |
$(“#one”).prev(“div”) | 获取id为one的元素的前面紧邻的同辈<div> 元素 |
获取元素范围大小顺序依次为:
$(“#one”).siblings(“div”) > $(“#one~div”) > $(“#one +div”)
或是
$(“#one”).siblings(“div”) > $(“#one”).nextAll(“div”) > $(“#one”).next(“div”)
表单选择器
语法 | 描述 |
---|---|
$(“:input”) | 选取所有<input> ,<textarea> ,<select> 和 <button> 元素 |
$(“:text”) | 选取所有的单行文本框 |
$(“:password”) | 选取所有的密码框 |
$(“:radio”) | 选取所有单的选框 |
$(“:checkbox”) | 选取所有的多选框 |
$(“:submit”) | 选取所有的提交按钮 |
$(“:image”) | 选取所有的图像按钮 |
$(“:reset”) | 选取所有的重置按钮 |
$(“:button”) | 选取所有的按钮 |
$(“:file”) | 选取所有的上传域 |
$(“:hidden”) | 选取所有不可见元素 |
基本过滤选择器
语法 | 描述 |
---|---|
$(“div:first”) | 选取所有<div> 元素中第1个<div> 元素 |
$(“div:last”) | 选取所有<div> 元素中最后一个<div> 元素 |
$(“input:not(.myClass)”) | 选取class不是myClass的<input> 元素 |
$(“input:even”) | 选取索引是偶数的<input> 元素(索引从0开始) |
$(“input:odd”) | 选取索引是基数的<input> 元素(索引从0开始) |
$(“input:eq(2)”) | 选取索引等于2的<input> 元素 |
$(“input:gt(4)”) | 选取索引大于4的<input> 元素 |
$(“input:lt(4)”) | 选取索引小于4的<input> 元素 |
$(“:header”) | 过滤掉所有标题元素,例如:h1、h2、h3等 |
$(“div:animated”) | 选取正在执行动画的<div> 元素 |
$(“:focus”) | 选取当前获取焦点的元素 |
更多选择器
除了上述几个选择器外,JQuery还有其他常用的选择器和过滤选择器,下面列举几个。
语法 | 描述 |
---|---|
$(this) | 当前 HTML 元素 |
$(“[href]”) | 选取带有 href 属性的元素 |
$(“[href$=’.jpg’]”) | 所有带有以 “.jpg” 结尾的属性值的 href 属性 |
$(“div#intro .head”) | id=”intro” 的 <div> 元素中的所有 class=”head” 的元素 |
$(“a[target=’_blank’]”) | 选取所有 target 属性值等于 “_blank” 的 <a> 元素 |
$(“a[target!=’_blank’]”) | 选取所有 target 属性值不等于 “_blank” 的 <a> 元素 |
$(“tr:even”) | 选取偶数位置的 <tr> 元素 |
$(“tr:odd”) | 选取奇数位置的 <tr> 元素 |
JQuery事件
JQuery 事件处理方法是 jQuery 中的核心函数。
常用事件
click()
click() 方法是当按钮点击事件被触发时会调用一个函数。
该函数在用户点击 HTML 元素时执行。
1 | // 当点击事件在某个 <p> 元素上触发时,隐藏当前的 <p> 元素 |
dblclick()
当双击元素时,会发生 dblclick 事件。
1 | // 当双击事件在某个 <p> 元素上触发时,隐藏当前的 <p> 元素 |
mouseenter()
当鼠标指针穿过元素时,会发生 mouseenter 事件。
1 | // mouseenter() 方法触发 mouseenter 事件 |
mouseleave()
当鼠标指针离开元素时,会发生 mouseleave 事件。
1 | // mouseleave() 方法触发 mouseleave 事件 |
mousedown()
当鼠标指针移动到元素上方,并按下鼠标按键时,会发生 mousedown 事件。
1 | // 鼠标按下了id为p1的元素 |
mouseup()
当在元素上松开鼠标按钮时,会发生 mouseup 事件。
1 | // 鼠标按下了id为p1的元素之后,松开了鼠标触发事件 |
hover()
hover()方法用于模拟光标悬停事件。
当鼠标移动到元素上时,会触发指定的第一个函数(mouseenter);当鼠标移出这个元素时,会触发指定的第二个函数(mouseleave)。
1 | // 调用方法 |
参数 | 描述 |
---|---|
inFunction | 必需。规定 mouseenter 事件发生时运行的函数。 |
outFunction | 可选。规定 mouseleave 事件发生时运行的函数。 |
1 | // 实例,鼠标进入触发第一个函数,离开触发第二个函数 |
focus()
当元素获得焦点时,发生 focus 事件。
当通过鼠标点击选中元素或通过 tab 键定位到元素时,该元素就会获得焦点。
1 | // 输入框获取焦点,发生focus事件 |
blur()
当元素失去焦点时,发生 blur 事件。
1 | // 输入框失去焦点,发生blur事件 |
keypress()
与 keypress 事件相关的事件顺序:
- keydown- 键按下的过程
- keypress - 键被按下
- keyup - 键被松开
1 | // 触发被选元素的 keypress 事件 |
参数 | 描述 |
---|---|
function | 可选。规定 keypress 事件触发时运行的函数。 |
keydown()
当键盘键被按下时发生 keydown 事件。
1 | $(selector).keydown(function) |
keyup()
当键盘键被松开时发生 keyup 事件。
1 | $(selector).keyup(function) |