Day 4
2019年6月23日。
这是我学习前端的第四天。
这一天,我学到了以下的知识。
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")
在页面中选取所有 <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();
});
2.dblclick()
当双击元素时,会发生 dblclick 事件。
dblclick() 方法触发 dblclick 事件,或规定当发生 dblclick 事件时运行的函数:
$("p").dblclick(function(){
$(this).hide();
});
3.mouseenter()
当鼠标指针穿过元素时,会发生 mouseenter 事件。
mouseenter() 方法触发 mouseenter 事件,或规定当发生 mouseenter 事件时运行的函数。
$("#p1").mouseenter(function(){
alert("You entered p1!");
});
4.mouseleave()
当鼠标指针离开元素时,会发生 mouseleave 事件。
mouseleave() 方法触发 mouseleave 事件,或规定当发生 mouseleave 事件时运行的函数:
$("#p1").mouseleave(function(){
alert("Bye! You now leave p1!");
});
5.mousedown()
当鼠标指针移动到元素上方,并按下鼠标按键时,会发生 mousedown 事件。
mousedown() 方法触发 mousedown 事件,或规定当发生 mousedown 事件时运行的函数:
$("#p1").mousedown(function(){
alert("Mouse down over p1!");
});
6.mouseup()
当在元素上松开鼠标按钮时,会发生 mouseup 事件。
方法触发 mouseup 事件,或规定当发生 mouseup 事件时运行的函数:
$("#p1").mouseup(function(){
alert("Mouse up over p1!");
});
7.hover()
hover()方法用于模拟光标悬停事件。
当鼠标移动到元素上时,会触发指定的第一个函数(mouseenter);当鼠标移出这个元素时,会触发指定的第二个函数(mouseleave)。
$("#p1").hover(function(){
alert("You entered p1!");
},
function(){
alert("Bye! You now leave p1!");
});
8.focus()
当元素获得焦点时,发生focus事件。
当通过鼠标点击选中元素或通过tab键定位到元素时,该元素就会获得焦点。
focus()方法触发 focus 事件,或规定当发生focus事件时运行的函数。
$("input").focus(function(){
$(this).css("background-color","#cccccc");
});
9.blur()
当元素失去焦点时,发生 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>