jQuery简介
jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。
jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。
jQuery特点
快速获取文档元素
jQuery的选择机制构建于Css的选择器,它提供了快速查询DOM文档中元素的能力,而且大大强化了JavaScript中获取页面元素的方式。
提供漂亮的页面动态效果
jQuery中内置了一系列的动画效果,可以开发出非常漂亮的网页,许多网站都使用jQuery的内置的效果,比如淡入淡出、元素移除等动态特效。
创建AJAX无刷新网页
AJAX是异步的JavaScript和ML的简称,可以开发出非常灵敏无刷新的网页,特别是开发服务器端网页时,比如PHP网站,需要往返地与服务器通信,如果不使用AJAX,每次数据更新不得不重新刷新网页,而使用AJAX特效后,可以对页面进行局部刷新,提供动态的效果。
提供对JavaScript语言的增强
jQuery提供了对基本JavaScript结构的增强,比如元素迭代和数组处理等操作。
增强的事件处理
jQuery提供了各种页面事件,它可以避免程序员在HTML中添加太事件处理代码,最重要的是,它的事件处理器消除了各种浏览器兼容性问题。
更改网页内容
jQuery可以修改网页中的内容,比如更改网页的文本、插入或者翻转网页图像,jQuery简化了原本使用JavaScript代码需要处理的方式。
jQuery导入
1.前往jQuery官网 https://jquery.com/
下载最新版本jquery(当前最新版本为3.4.1)
2.在项目下面新建一个js文件夹,将下载的jQuery文件放入,即可完成导入
jQuery语言基础
选择器
jQuery 选择器允许您对 HTML 元素组或单个元素进行操作。
jQuery 选择器基于元素的 id、类、类型、属性、属性值等"查找"(或选择)HTML 元素。 它基于已经存在的CSS 选择器,除此之外,它还有一些自定义的选择器。
jQuery 中所有选择器都以美元符号开头:$()。
元素选择器
jQuery 元素选择器基于元素名选取元素。
$("p")
id 选择器
jQuery #id 选择器通过 HTML 元素的 id 属性选取指定的元素。
页面中元素的 id 应该是唯一的,所以您要在页面中选取唯一的元素需要通过 #id 选择器。
通过 id 选取元素语法如下:
$("#test")
class 选择器
jQuery 类选择器可以通过指定的 class 查找元素。
语法如下:
$(".test")
事件处理
jQuery 事件方法语法
在 jQuery 中,大多数 DOM 事件都有一个等效的 jQuery 方法。
页面中指定一个点击事件:
$("p").click();
下一步是定义什么时间触发事件。您可以通过一个事件函数实现:
$("p").click(function(){ // 动作触发后执行的代码!! });
常用的 jQuery 事件方法
1.$(document).ready()
$(document).ready() 方法允许我们在文档完全加载完后执行函数。该事件方法在jQuery 语法章节中已经提到过。
click()
click() 方法是当按钮点击事件被触发时会调用一个函数。
该函数在用户点击 HTML 元素时执行。
在下面的实例中,当点击事件在某个 <p.> 元素上触发时,隐藏当前的 <p.> 元素:
$("p").click(function(){ $(this).hide(); });
当双击元素时,会发生 dblclick 事件。
dblclick() 方法触发 dblclick 事件,或规定当发生 dblclick 事件时运行的函数:
$("p").dblclick(function(){ $(this).hide(); });
当鼠标指针穿过元素时,会发生 mouseenter 事件。
mouseenter() 方法触发 mouseenter 事件,或规定当发生 mouseenter 事件时运行的函数。
$("#p1").mouseenter(function(){ alert("You entered p1!"); });
当鼠标指针离开元素时,会发生 mouseleave 事件。
mouseleave() 方法触发 mouseleave 事件,或规定当发生 mouseleave 事件时运行的函数:
$("#p1").mouseleave(function(){ alert("Bye! You now leave p1!"); });
当鼠标指针移动到元素上方,并按下鼠标按键时,会发生 mousedown 事件。
mousedown() 方法触发 mousedown 事件,或规定当发生 mousedown 事件时运行的函数:
$("#p1").mousedown(function(){ alert("Mouse down over p1!"); });
当在元素上松开鼠标按钮时,会发生 mouseup 事件。
方法触发 mouseup 事件,或规定当发生 mouseup 事件时运行的函数:
$("#p1").mouseup(function(){ alert("Mouse up over p1!"); });
hover()方法用于模拟光标悬停事件。
当鼠标移动到元素上时,会触发指定的第一个函数(mouseenter);当鼠标移出这个元素时,会触发指定的第二个函数(mouseleave)。
$("#p1").hover(function(){ alert("You entered p1!"); }, function(){ alert("Bye! You now leave p1!"); });
当元素获得焦点时,发生focus事件。
当通过鼠标点击选中元素或通过tab键定位到元素时,该元素就会获得焦点。
focus()方法触发 focus 事件,或规定当发生focus事件时运行的函数。
$("input").focus(function(){ $(this).css("background-color","#cccccc"); });
当元素失去焦点时,发生 blur 事件。
blur() 方法触发 blur 事件,或规定当发生 blur 事件时运行的函数:
$("input").blur(function(){ $(this).css("background-color","#ffffff"); });
jQuery示例
实现隔行变色
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--引入jQuery--> <script src="js/jquery-3.4.1.js"></script> </head> <body> <table border="1px" id="tb"> <tbody> <tr> <td>第一行</td> <td>第一行</td> </tr> <tr> <td>第二行</td> <td>第二行</td> </tr> <tr> <td>第三行</td> <td>第三行</td> </tr> <tr> <td>第四行</td> <td>第四行</td> </tr> <tr> <td>第五行</td> <td>第五行</td> </tr> <tr> <td>第六行</td> <td>第六行</td> </tr> <tr> <td>第七行</td> <td>第七行</td> </tr> </tbody> </table> <script> /* var a = document.getElementById("tb"); var b = document.getElementsByTagName("tbody")[0]; var c = document.getElementsByTagName("tr"); console.log(a); console.log(b); console.log(c); for (var i = 0 ; i < c.length ; i++){ if (i % 2 === 0){ c[i].style.background = "yellow"; } }*/ $("tr:odd").css("background-color","#e8f0f2"); </script> </body> </html>
jQuery选择器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JQuery选择器</title> <!--引入jQuery--> <script src="js/jquery-3.4.1.js"></script> </head> <body> <a href="">你好啊</a> <p id="i">23333</p> <div class="c">emmmmmmm...</div> <span>猪</span> <input type="button" value="按压"> <script> //jQuery = $ //$ or jQuery :就是jQuery的工厂函数 —— 将document对象加工为jQuery对象 //(): 选择什么东西加工 // .事件 : jQuery写好的各种各样的方法 //万能公式 : $(选择器).事件(事件产生的函数); $("[value='按压']").keydown(function () { console.log(event.keyCode); if (event.keyCode === 13){ console.log("你输入的是回车"); } console.log("下去了") }); $("[value='按压']").keypress(function () { console.log("压住了") }); $("[value='按压']").keyup(function () { console.log("上来了") }); $(document).ready(function () { alert("jQuery"); }); $("#i").click(function () { alert("你好啊"); }); </script> </body> </html>
隐式迭代
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--引入jQuery--> <script src="js/jquery-3.4.1.js"></script> </head> <body> <ul> <li class="a">111111</li> <li>222222</li> <li class="a">333333</li> <li>444444</li> </ul> <script> //隐式迭代,可以选择到一类标签元素 $(".a").css({"font-size":"20px","background":"red"}); </script> </body> </html>