JQuery 测试内容(不保证内容完整性)
JQuery 基础
tags: 前端
JQuery
基础
一 什么是JQery
是一个 轻量级的兼容多浏览器的JavaScript库(类库)
jQuery使用户能够更方便地处理HTML Document、Events、实现动画效果、方便地进行Ajax交互,能够极大地简化JavaScript编程。它的宗旨就是:"Write less, do more."
二 为什么使用JQery
<3>它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器
<4>jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTMLdocuments、events、实现动画效果,并且方便地为网站提供AJAX交互。
<5>jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。
三 怎么下载使用
版本选择
- 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版。目前该版本是官方主要更新维护的版本。
版本下载
官方地址:http://jquery.com/download/
压缩的版本3.3.1 --->上线使用
未压缩的版本3.3.1 --->开发使用
安装两种方式
pass
- 优美胜于丑陋(Python 以编写优美的代码为目标)
- 明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
- 简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
- 复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
- 扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
- 间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
- 可读性很重要(优美的代码是可读的)
- 即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
- 不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)
- 当存在多种可能,不要尝试去猜测
- 而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
- 虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )
- 做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
- 如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
- 命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)
基础知识
基本语法
jquery的基础语法:
$(selector).action()
查找标签
:::info
本章节练习题基于:jQuery选择器筛选器练习.html
:::
基本选择器
$("#id的值")
id选择器
$("#id的值")
举例:找到本页面中id是i1的标签
$("#i1") -------- -> Object [ div#i1.container ]
标签选择器
查找所有标签
$("*") ---------- Object { 0: html , 1: head, 2: meta, 3: meta, 4: meta, 5: title, 6: link, 7: link, 8: style, 9: body, … }
查找
class选择器
$(".class")
$(".c1") Object { 0: h1.c1 , 1: h1.c1, length: 2, prevObject: Object(1) }
配合使用
找到div
的container
类的标签
$("div.container") ---------- r.fn.init(6) [div.container, div.container, div.container, div#i1.container, div.container, div.container, prevObject: r.fn.init(1)]
层级选择器
练习:
自定义模态框,使用jQuery实现弹出和隐藏功能。
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>模态框</title> <style> .cover { position: fixed; top: 0; right: 0; bottom: 0; left: 0; background-color: rgba(0, 0, 0, 0.3); z-index: 99; } .modal { width: 400px; height: 300px; background-color: white; position: absolute; top: 50%; left: 50%; margin-top: -150px; margin-left: -200px; z-index: 100; } .close { float: right; margin-right: 15px; cursor: pointer; /* 鼠标移上去光标显示类型 */ } .hide { display: none; } /*#login {*/ /*!*float: right;*!*/ /*!*top: 0;*!*/ /*!*right: 100%;*!*/ /*}*/ </style> </head> <body> <div> <h1>《钗头凤》唐婉</h1> <p>世情薄</p> <p>人情恶</p> <p>雨送黄昏花易落</p> <p>晓风干</p> <p>泪痕残</p> <p>欲笺心事</p> <p>独语斜阑</p> <p>难 难 难</p> <p>人成各</p> <p>今非昨</p> <p>病魂长似秋千索</p> <p>角声寒</p> <p>夜阑珊</p> <p>怕人询问</p> <p>咽泪装欢</p> <p>瞒 瞒 瞒</p> </div> <button id="login">登录</button> <div class="cover hide"></div> <div class="modal hide"> <div class="close">X</div> </div> <script src="jquery.js"></script> <script> $("#login")[0].onclick = function () { //去掉cover和modal的hide样式类 // 有两种方式 // 方式一 // $(".cover")[0].classList.remove('hide'); // $(".modal")[0].classList.remove('hide'); //方式二 $(".cover,.modal").removeClass('hide') }; // 找到close按钮绑定 $(".close")[0].onclick = function () { //添加cover和modal的hide样式类 // $(".cover")[0].classList.add('hide'); // $(".modal")[0].classList.add('hide'); $(".cover,.modal").addClass('hide') } </script> </body> </html>
基本筛选器
:first
->第一个
举例:找到id值为f1的标签内部的第一个input标签
$("#f1:first") Object { 0: form#f1 , length: 1, prevObject: Object(1) }
:last
->最后一个
找到id值为my-checkbox的标签内部最后一个input标签
举例:
$("#my-checkbox:last") Object { 0: div#my-checkbox.panel-body , length: 1, prevObject: Object(1) }
:eq(index)
-->索引等于index的那个元素
举例:
属性选择器
[arribute]
[attribute=value]
//属性等于[attribute!=value]
//属性不等于
表单筛选器
练习题
- 找到本页面中id是i1的标签
- 找到本页面中所有的h2标签
- 找到本页面中所有的input标签
- 找到本页面所有样式类中有c1的标签
- 找到本页面所有样式类中有btn-default的标签
- 找到本页面所有样式类中有c1的标签和所有h2标签
- 找到本页面所有样式类中有c1的标签和id是p3的标签
- 找到本页面所有样式类中有c1的标签和所有样式类中有btn的标签
- 找到本页面中form标签中的所有input标签
- 找到本页面中被包裹在label标签内的input标签
- 找到本页面中紧挨在label标签后面的input标签
- 找到本页面中id为p2的标签后面所有和它同级的li标签
- 找到id值为f1的标签内部的第一个input标签
- 找到id值为my-checkbox的标签内部最后一个input标签
- 找到id值为my-checkbox的标签内部没有被选中的那个input标签
- 找到所有含有input标签的label标签
实例
垂直菜单/Users/chery/Documents/LearnPython/E_前端/day51/垂直菜单.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Vertical menu with CSS</title> <link rel="stylesheet" href="fonts/css/font-awesome.css"> <style type="text/css"> body{ padding: 0; margin: 0; } .menu ul{ list-style-type: none; margin: 0; padding: 0; } .menu ul li{ padding: 15px; position: relative; width: 150px; vertical-align: middle; background-color: #2C3A47; cursor: pointer; /*border-right: 5px solid gold;*/ border-top:1px solid silver; /* 颜色延迟显示 */ -webkit-transition: all 0.3s; -o-transition: all 0.3s; transition: all 0.3s; } .menu ul li:hover { background-color: #2ecc71; } .menu > ul >li { border-right: 5px solid gold; } .menu ul ul{ transition: all 0.3s; opacity: 0; position: absolute; border-left: 5px solid gold; visibility: hidden; left: 100%; top:-2%; } .menu ul li:hover>ul { opacity: 1; visibility: visible; } .menu ul li a{ color: #fff; text-decoration: none; } span { margin-right: 15px; } .menu> ul >li:nth-of-type(2)::after{ content: '+'; position: absolute; margin-left: 40%; float: right; color: #fff; font-size: 20px; } </style> </head> <body> <div class="menu"> <ul> <li><a href=""><span class="fa fa-home"></span>主页</a></li> <li><a href=""><span class="fa fa-users"></span>用户</a> <ul> <li><a href=""><span class="fa fa-plus" ></span>添加</a></li> <li><a href=""><span class="fa fa-edit" ></span>编辑</a></li> <li><a href=""><span class="fa fa-remove" ></span>删除</a></li> </ul> </li> <li><a href=""><span class="fa fa-desktop"></span>设计</a></li> <li><a href=""><span class="fa fa-database"></span>数据</a></li> <li><a href=""><span class="fa fa-info"></span>关于我</a></li> </ul> </div> </body> </html>
效果:
- [x] 延迟显示
- [x] 多级菜单
操作元素(属性,css,文档处理)
文本操作
/E_前端/day51/文本操作.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>文本操作</title> </head> <body> <div id="d1"> 《前出师表》 <p> 臣本布衣,躬耕于南阳。苟全性命于乱世,不求闻达于诸侯。 先帝不以臣卑鄙,位子望去,三顾晨宇草湖之中,自衬衣党史知识 </p> </div> <label for="i1"></label><input type="text" id="i1"> <label> <input type="checkbox" name="hobby" value="basketball"> </label>篮球