1\1 JQuery 介绍
- jQuery是一个轻量级的、兼容多浏览器的JavaScript库。
- jQuery使用户能够更方便地处理HTML Document、Events、实现动画效果、方便地进行Ajax交互,能够极大地简化JavaScript编程。它的宗旨就是:“Write less, do more.“
1\2jQuery的优势
- 一款轻量级的JS框架。jQuery核心js文件才几十kb,不会影响页面加载速度。
- 丰富的DOM选择器,jQuery的选择器用起来很方便,比如要找到某个DOM对象的相邻元素,JS可能要写好几行代码,而jQuery一行代码就搞定了,再比如要将一个表格的隔行变色,jQuery也是一行代码搞定。
- 链式表达式。jQuery的链式操作可以把多个操作写在一行代码里,更加简洁。
- 事件、样式、动画支持。jQuery还简化了js操作css的代码,并且代码的可读性也比js要强。
- Ajax操作支持。jQuery简化了AJAX操作,后端只需返回一个JSON格式的字符串就能完成与前端的通信。
- 跨浏览器兼容。jQuery基本兼容了现在主流的浏览器,不用再为浏览器的兼容问题而伤透脑筋。
- 插件扩展开发。jQuery有着丰富的第三方的插件,例如:树形菜单、日期控件、图片切换插件、弹出窗口等等基本前端页面上的组件都有对应插件,并且用jQuery插件做出来的效果很炫,并且可以根据自己需要去改写和封装插件,简单实用
1\3 JQuery内容
- 选择器
- 筛选器
- 样式操作
- 文本操作
- 属性操作
- 文档处理
- 事件
- 动画效果
- 插件
- each、data、Ajax
下载链接:jQuery官网:https://jquery.com/
中文文档:jQuery AP中文文档:http://jquery.cuishifeng.cn/
1\4jQuery版本
- 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的支持。
1\5jQuery对象
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
里的方法。
1\6JQuery 语法
1.1 操作节点
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <span>div上面的span</span> <div>div <p>div>p</p> <span id="s1">div>span</span> <p>div>p <span>div>p>span</span> </p> </div> <span>div+span</span> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <span>div上面的span</span> <div>div <p>div>p</p> <span id="s1">div>span</span> <p>div>p <span>div>p>span</span> </p> </div> <span>div+span</span> </body> </html> div上面的span div div>p 百度内容很无聊div>span div>p div>p>span div+span
1.2 获取input用户输入
1.3 操作标签类
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .c1 { width: 300px; height: 300px; border: 3px solid red; border-radius: 50%; } .br-red{ background-color: red; } .br-green{ background-color: green; } </style> </head> <body> <div class="c1 br-red br-green"></div> <input type="text"> </body> </html>
var divEle=document.getElementsByClassName('c1')[0]; undefined divEle.classList; DOMTokenList(3) ["c1", "br-red", "br-green", value: "c1 br-red br-green"] divEle.classList.remove('br-green'); undefined divEle.classList.add('br-green'); undefined divEle.classList.toggle('br-green'); false
1.4 事件
HTML 4.0 的新特性之一是有能力使 HTML 事件触发浏览器中的动作(action),比如当用户点击某个 HTML 元素时启动一段 JavaScript。下面是一个属性列表,这些属性可插入 HTML 标签来定义事件动作。
常用事件
onclick 当用户点击某个对象时调用的事件句柄。 ondblclick 当用户双击某个对象时调用的事件句柄。 onfocus 元素获得焦点。 // 练习:输入框 onblur 元素失去焦点。 应用场景:用于表单验证,用户离开某个输入框时,代表已经输入完了,我们可以对它进行验证. onchange 域的内容被改变。 应用场景:通常用于表单元素,当元素内容被改变时触发.(select联动) onkeydown 某个键盘按键被按下。 应用场景: 当用户在最后一个输入框按下回车按键时,表单提交. onkeypress 某个键盘按键被按下并松开。 onkeyup 某个键盘按键被松开。 onload 一张页面或一幅图像完成加载。 onmousedown 鼠标按钮被按下。 onmousemove 鼠标被移动。 onmouseout 鼠标从某元素移开。 onmouseover 鼠标移到某元素之上。 onselect 在文本框中的文本被选中时发生。 onsubmit 确认按钮被点击,使用的对象是form。
实列:圆形点击事件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .c1 { width: 300px; height: 300px; border: 3px solid red; border-radius: 50%; } .br-red{ background-color: red; } .br-green{ background-color: green; } </style> </head> <body> <div class="c1 br-red br-green"></div> <button id="d1">点我给你戴帽子</button> <script> var bEle = document.getElementById('d1'); #点击事件 绑定事件 bEle.onclick =function () { var dEle = document.getElementsByClassName('c1')[0]; # 先查找 dEle.classList.toggle('br-green') # 注意要先删除后面的才能进行操作
不能先删除红色
} </script> </body> </html>
1.5获取焦点事件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="text" value="618大促销" id="il"> # 可以尝试小米官网的左边 输入input框 <script> var iEle = document.getElementById('il'); iEle.onfocus = function () { #获取焦点事件 iEle.value='' } iEle.onblur = function () { # 失去焦点事件 iEle.value='有钱真好 可以买买买' } </script> </body> </html> 1.6 时间定时器 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="text" id="d1"> <button id="b1">开始</button> <button id="b2">结束</button> <script> // 定义一个存储定时器的全局变量 var flag; // 先获取代码中需要用到的一些固定标签对象 var b1Ele = document.getElementById('b1'); var iEle = document.getElementById('d1'); var b2Ele = document.getElementById('b2'); // 定义一个展示时间的函数 var showTime = function(){ // 获取当前时间 var cTime = new Date(); iEle.value = cTime.toLocaleString() }; // 给b1标签绑定点击事件 b1Ele.onclick = function () { // 先判断flag是否已经指代了一个定时器 if (!flag){ flag = setInterval(showTime,1000) } }; b2Ele.onclick = function () { // 取消定时器 clearInterval(flag); // 将标志位手动置为布尔值为false的值即可 flag = null; } </script> </body> </html>
(二)图书管理模型表:
图书管理系统: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>--> <!--<link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">--> <!--<script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>--> <script src="JQuery-3.4.1.js"></script> <link rel="stylesheet" href="bootstrap-3.3.7-dist/css/bootstrap.min.css"> <script src="bootstrap-3.3.7-dist/js/bootstrap.min.js"></script> <style> .c0{height: 2000px; border: 1px solid darkgray; } </style> </head> <body> <div class="c0"> <nav class="navbar navbar-inverse"> <div class="container-fluid"> <!-- Brand and toggle get grouped for better mobile display --> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">图书管理系统</a> </div> <!-- Collect the nav links, forms, and other content for toggling --> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav a:hover"> <li class="active"><a href="#">本地图书 <span class="sr-only">(current)</span></a></li> <li><a href="#">线上图书</a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">下拉有惊喜 <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="#">Action</a></li> <li><a href="#">Another action</a></li> <li><a href="#">Something else here</a></li> <li role="separator" class="divider"></li> <li><a href="#">Separated link</a></li> <li role="separator" class="divider"></li> <li><a href="#">One more separated link</a></li> </ul> </li> </ul> <form class="navbar-form navbar-left"> <div class="form-group"> <input type="text" class="form-control" placeholder="Search"> </div> <button type="submit" class="btn btn-default">Submit</button> </form> <ul class="nav navbar-nav navbar-right"> <li><a href="#">登录</a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">更多操作 <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="#">Action</a></li> <li><a href="#">Another action</a></li> <li><a href="#">Something else here</a></li> <li role="separator" class="divider"></li> <li><a href="#">Separated link</a></li> </ul> </li> </ul> </div><!-- /.navbar-collapse --> </div><!-- /.container-fluid --> </nav> <div class="container-fluid "> <div class="row"> <div class="col-md-3"> <div class="list-group"> <a href="#" class="list-group-item active"> 图书列表 </a> <a href="#" class="list-group-item">管理员列表</a> <a href="#" class="list-group-item">作者列表</a> <a href="#" class="list-group-item">出版社列表</a> <a href="#" class="list-group-item">其他列表</a> </div> </div> <div class="col-md-9"> <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title">图书管理系统 <span class="glyphicon glyphicon-book pull-right"></span></h3> </div> <div class="panel-body"> <form class="form-inline"> <div class="form-group"> <div class="input-group"> <input type="text" class="form-control" id="exampleInputAmount" placeholder="Amount"> </div> </div> <button type="submit" class="btn btn-primary">关键字搜索</button> <button class="btn-success pull-right">新增</button> <table class="table table-striped table-bordered table-hover "> <thead> <tr> <th>#</th> <th>id</th> <th>title</th> <th>price</th> <th>author</th> <th>action</th> </tr> </thead> <tboby> <tr> <td>1</td> <td>1</td> <td>围城</td> <td>88</td> <td>钱仲书</td> <td> <a href="" class="btn-primary btn-sm">编辑</a> <a href="" class="btn-warning btn-sm">删除</a> </td> </tr> </tboby> <tboby> <tr> <td>2</td> <td>2</td> <td>百草园</td> <td>38</td> <td>鲁迅</td> <td> <a href="" class="btn-primary btn-sm">编辑</a> <a href="" class="btn-warning btn-sm">删除</a> </td> </tr> </tboby> <tboby> <tr> <td>3</td> <td>3</td> <td>python</td> <td>12888</td> <td>egon</td> <td> <a href="" class="btn-primary btn-sm">编辑</a> <a href="" class="btn-warning btn-sm">删除</a> </td> </tr> </tboby> <tboby> <tr> <td>4</td> <td>4</td> <td>jS</td> <td>798</td> <td>jason</td> <td> <a href="" class="btn-primary btn-sm">编辑</a> <a href="" class="btn-warning btn-sm">删除</a> </td> </tr> </tboby> <tboby> <tr> <td>5</td> <td>5</td> <td>Go</td> <td>498</td> <td>uuu</td> <td> <a href="" class="btn-primary btn-sm">编辑</a> <a href="" class="btn-warning btn-sm">删除</a> </td> </tr> </tboby> <tboby> <tr> <td>6</td> <td>6</td> <td>java</td> <td>188</td> <td>xxx</td> <td> <a href="" class="btn-primary btn-sm">编辑</a> <a href="" class="btn-warning btn-sm">删除</a> </td> </tr> </tboby> </table> <nav aria-label="Page navigation text-center " class="text-center"> <ul class="pagination "> <li> <a href="#" aria-label="Previous"> <span aria-hidden="true">«</span> </a> </li> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> <li><a href="#">4</a></li> <li><a href="#">5</a></li> <li> <a href="#" aria-label="Next"> <span aria-hidden="true">»</span> </a> </li> </ul> </nav> </form> </div> </div> </div> </div> </div> </div> </body> </html>