参考:菜鸟教程
一、简介
1.jQuery 是一个 JavaScript 库。
2.jQuery的版本:压缩版(用户生成)和未压缩(用于测试和开发)
3.jQuery的引入方式:
从http://jquery.com/download/下载
从站点引入:<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js">
4.基础语法: $(selector).action()
5.代码位置:
<head> <script src="jquery-3.0.0/jquery-3.0.0.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ // 开始写 jQuery 代码... }); </script> </head>
二、选择器
1.基本选择器
通用选择器 $("*") 所有元素
元素选择器 $("p") 所有<p>元素
id选择器 $("#name") id为name的元素
class选择器 $("name") class为name的元素
2.组合选择器
组合选择器 $(".intro,.demo") class 为 "intro" 或 "demo" 的所有元素
$("h1,div,p") 所有 <h1>、<div> 和 <p> 元素
子代选择器 $("div > p") <div>的子代<p>元素
后代选择器 $("div p") <div> 元素的后代的所有 <p> 元素
毗邻选择器 $("div + p") 每个 <div> 元素相邻的下一个 <p> 元素
同级选择器 $("div ~ p") 选取 <div> 元素之后同级的所有 <p> 元素
3.属性选择器
[attribute] $("[id]") 所有带有id属性的元素
[attribute=value] $("[id='name']") 所有带有id属性且值等于"name"的元素
[attribute!=value] $("[id!='name']") 所有带有 id 属性且值不等于"name"的元素
[attribute$=value] $("[id$='.jpg']") 所有带有 id 属性且值以".jpg"结尾的元素
[attribute^=value] $("[title^='Tom']") 所有带有 title 属性且值以"Tom"开头的元素
[attribute~=value] $("[title~='hello']") 所有带有 title 属性且值包含单词"hello"的元素
[attribute*=value] $("[title*='hello']") 所有带有 title 属性且值包含字符串 "hello" 的元素
[name=value][name2=value2] $( "input[id][name$='man']" ) 带有 id 属性,并且 name 属性以 man 结尾的输入框
4.表单选择器
$(":input") 所有 input 元素
$(":text") 所有带有 type="text" 的 input 元素
$(":password") 所有带有 type="password" 的 input 元素
$(":radio") 所有带有 type="radio" 的 input 元素
$(":checkbox") 所有带有 type="checkbox" 的 input 元素
$(":submit") 所有带有 type="submit" 的 input 元素
$(":reset") 所有带有 type="reset" 的 input 元素
$(":button") 所有带有 type="button" 的 input 元素
$(":image") 所有带有 type="image" 的 input 元素
$(":file") 所有带有 type="file" 的 input 元素
5.基础过滤器
$("p:first") 第一个 <p> 元素
$("p:last") 最后一个 <p> 元素
$("ul li:eq(3)") 列表中的第四个元素(index 值从 0 开始)
$("ul li:gt(3)") 列举 index 大于 3 的元素
$("ul li:lt(3)") 列举 index 小于 3 的元素
$(":header") 所有标题元素 <h1>, <h2> ...
三、查找
1.向上查找
1.1 parent 只找父亲
1.2 parents 所有祖先元素,一直到html
1.3 parentsUntil 两个元素之间的所有元素
<!DOCTYPE html> <html> <head> <title></title> </head> <script src="jquery-3.0.0/jquery-3.0.0.min.js"></script> <script type="text/javascript"> $(document).ready(function () { // $("span").parent().css({"background-color":"red"}); //对div3修改 // $("span").parents().css({"background-color":"red"}); //一直到<html> $("span").parentsUntil("#div1").css({"background-color":"red"}); //对<div2> <div3>修改 }) </script> <body> <div id="div1">div1 <div id="div2">div2 <div id="div3"> <span>hello</span> </div> </div> </div> </body> </html>
2.向后查找
2.1children() 子代
2.2find() 所有后代,直到最后一代
<!DOCTYPE html> <html> <head> <title></title> </head> <script src="jquery-3.0.0/jquery-3.0.0.min.js"></script> <script type="text/javascript"> $(document).ready(function () { $("#div1").children("div").css({"border":"2px solid red"}) // $("#div1").find("div").css({"border":"2px solid red"}) }) </script> <body> <div id="div1">div1 <div id="div2">div2 <div id="div3"> <span>hello</span> </div> </div> </div> </body> </html>
3.同级查找
3.1 siblings() 所有同胞元素
3.2 next() 下一个同胞元素。
3.3 nextAll() 所有跟随的同胞元素。
3.4 nextUntil() 介于两个给定参数之间的所有跟随的同胞元素
3.5 prev()
3.6 prevAll()
3.7 prevUntil()
4.过滤
4.1first() 返回第一个元素
4.2last() 返回最后一个元素
4.3eq() 返回指定索引号
4.4filter() 返回匹配结果
4.5not() 返回不匹配结果
四、事件
1.鼠标事件
1.1 click():当按钮点击事件被触发时会调用一个函数
<!DOCTYPE html> <html> <head> <title></title> </head> <script src="jquery-3.0.0/jquery-3.0.0.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("p").click(function () { $(this).hide() }) }); </script> <body> <p>点我消失</p> </body> </html>
1.2 dblclick() 当双击元素时,会发生 dblclick 事件。
1.3 mouseenter()和mouseleave()
<!DOCTYPE html> <html> <head> <title></title> </head> <script src="jquery-3.0.0/jquery-3.0.0.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("p").mouseenter(function () { $(this).text("鼠标放上"); }) }); $(document).ready(function(){ $("p").mouseleave(function () { $(this).text("鼠标离开"); }) }); </script> <body> <p>鼠标离开</p> </body> </html>
1.4 mousedown()和mouseup()
<!DOCTYPE html> <html> <head> <title></title> </head> <script src="jquery-3.0.0/jquery-3.0.0.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("p").mousedown(function () { $(this).text("鼠标按下"); }) }); $(document).ready(function(){ $("p").mouseup(function () { $(this).text("鼠标松开"); }) }); </script> <body> <p>点我</p> </body> </html>
1.5 hover()
当鼠标移动到元素上时,会触发指定的第一个函数(mouseenter);当鼠标移出这个元素时,会触发指定的第二个函数(mouseleave)。
<!DOCTYPE html> <html> <head> <title></title> </head> <script src="jquery-3.0.0/jquery-3.0.0.min.js"></script> <script type="text/javascript"> $(document).ready(function () { $("#p1").hover( function () { $(this).text("你来了"); }, function () { $(this).text("你走了"); } ) }) </script> <body> <!-- <div style="background-color: gray;">你走了</div> --> <p id="p1">来点我</p> </body> </html>
2.键盘事件
暂空
3.表单事件
3.1focus()和blur()
<!DOCTYPE html> <html> <head> <title></title> </head> <script src="jquery-3.0.0/jquery-3.0.0.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("input").focus(function(){ $(this).css("background-color","#cccccc"); }); $("input").blur(function(){ $(this).css("background-color","#ffffff"); }); }); </script> <body> Name: <input type="text" name="fullname"> </body> </html>
4.文档/窗口事件
暂空
五、修改HTML
1.获取内容
1.1 text() - 设置或返回所选元素的文本内容
1.2 html() - 设置或返回所选元素的内容(包括 HTML 标记)
1.3 val() - 设置或返回表单字段的值
1.4 attr() - 获取属性值
<!DOCTYPE html> <html> <head> <title></title> </head> <script src="jquery-3.0.0/jquery-3.0.0.min.js"></script> <script type="text/javascript"> $(document).ready(function () { $("#txt").click(function () { alert($(this).text()) }) $("#html").click(function () { alert($(this).html()) }) $("button").click(function () { alert("你的名字是:" + $("input").val()) }) }) </script> <body> 姓名: <input type="text" name="username"> <button value="">确认</button> <p id="txt">点我显示text内容</p> <p id="html">点我显示HTML内容</p> </body> </html>
2.设置内容
2.1 text() - 设置或返回所选元素的文本内容
2.2 html() - 设置或返回所选元素的内容(包括 HTML 标记)
2.3 val() - 设置或返回表单字段的值
2.4 attr() - 设置/改变属性值
<!DOCTYPE html> <html> <head> <title></title> </head> <script src="jquery-3.0.0/jquery-3.0.0.min.js"></script> <script type="text/javascript"> $(document).ready(function () { $("#txt").click(function () { $(this).text("hello world") }) $("#html").click(function () { $(this).html("<p>hello world</p>") }) $("button").click(function () { $("input").val("hello world") }) }) </script> <body> 姓名: <input type="text" name="username"> <button value="">确认</button> <p id="txt">点我更改text内容</p> <p id="html">点我更改HTML内容</p> </body> </html>
3.添加元素
3.1 append() - 在被选元素的结尾插入内容
3.2 prepend() - 在被选元素的开头插入内容
3.3 after() - 在被选元素之后插入内容
3.4 before() - 在被选元素之前插入内容
append/prepend与after/before的区别:append/prepend 是在选择元素内部嵌入。after/before 是在元素外面追加。
<!DOCTYPE html> <html> <head> <title></title> </head> <script src="jquery-3.0.0/jquery-3.0.0.min.js"></script> <script type="text/javascript"> $(document).ready(function () { $("#btn1").click(function () { $("#p1").append("<p>向后又一段</p>") }) }) $(document).ready(function () { $("#btn2").click(function () { $("#p1").prepend("<p>向前又一段</p>") }) }) </script> <body> <p id="p1">第一段</p> <button id="btn1">在后面添加一段</button> <button id="btn2">在前面添加一段</button> </body> </html>
4.删除元素
4.1 remove() 方法删除被选元素及其子元素
4.2 empty() 方法删除被选元素的子元素
六、修改CSS
1.添加、删除样式
addClass() - 向被选元素添加一个或多个类
removeClass() - 从被选元素删除一个或多个类
toggleClass() - 对被选元素进行添加/删除类的切换操作
<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> .ppp { color: red; font-size: 30px; border:2px solid blue; } </style> </head> <script src="jquery-3.0.0/jquery-3.0.0.min.js"></script> <script type="text/javascript"> $(document).ready(function () { $("#btn1").click(function () { $("#p1").addClass("ppp") }) $("#btn2").click(function () { $("#p1").removeClass("ppp") }) $("#btn3").click(function(){ $("#p1").toggleClass("ppp"); }); }) </script> <body> <p id="p1">hello world</p> <button id="btn1">添加样式</button> <button id="btn2">删除样式</button> <button id="btn3">切换样式</button> </body> </html>
2.设置CSS样式
css() - 设置或返回样式属性
css({"propertyname":"value","propertyname":"value",...});
七、效果
7.1 显示与隐藏
$(selector).hide(speed,callback);
$(selector).show(speed,callback);
$(selector).toggle(speed,callback);
参数:
可选的 speed 参数规定隐藏/显示的速度,可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是隐藏或显示完成后所执行的函数名称。
<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> </style> </head> <script src="jquery-3.0.0/jquery-3.0.0.min.js"></script> <script type="text/javascript"> $(document).ready(function () { $("#hide").click(function(){ $("p").hide("slow"); }); $("#show").click(function(){ $("p").show("fast"); }); $("#change").click(function(){ $("p").toggle(2000); }); }) </script> <body> <p>hello world</p> <button id="show">显示</button> <button id="hide">隐藏</button> <button id="change">切换</button> </body> </html>
7.2 淡入淡出
$(selector).fadeIn(speed,callback); 淡入已隐藏的元素。
$(selector).fadeOut(speed,callback); 用于淡出可见元素。
$(selector).fadeToggle(speed,callback); 在 fadeIn() 与 fadeOut() 方法之间进行切换
$(selector).fadeTo(speed,opacity,callback); 渐变为给定的不透明度(值介于 0 与 1 之间)
<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> </style> </head> <script src="jquery-3.0.0/jquery-3.0.0.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#button1").click(function(){ $("#div1").fadeIn(); $("#div2").fadeIn("slow"); $("#div3").fadeIn(3000); }); $("#button2").click(function(){ $("#div1").fadeOut(); $("#div2").fadeOut("slow"); $("#div3").fadeOut(3000); }); $("#button3").click(function(){ $("#div1").fadeToggle(); $("#div2").fadeToggle("slow"); $("#div3").fadeToggle(3000); }); $("#button4").click(function(){ $("#div1").fadeTo("slow",0.15); $("#div2").fadeTo("slow",0.4); $("#div3").fadeTo("slow",0.7); }); }); </script> </head> <body> <button id="button1">点击淡入 div 元素。</button> <button id="button2">点击淡出 div 元素。</button> <button id="button3">点击淡入/淡出元素。</button> <button id="button4">点击让颜色变淡。</button> <br><br> <div id="div1" style="width:80px;height:80px;display:none;background-color:red;"></div><br> <div id="div2" style="width:80px;height:80px;display:none;background-color:green;"></div><br> <div id="div3" style="width:80px;height:80px;display:none;background-color:blue;"></div> </body> </html>
7.3 滑动
$(selector).slideDown(speed,callback); 向下滑动元素
$(selector).slideUp(speed,callback); 向上滑动元素
$(selector).slideToggle(speed,callback); 在 slideDown() 与 slideUp() 方法之间进行切换。
<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> </style> </head> <script src="jquery-3.0.0/jquery-3.0.0.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#button1").click(function(){ $("#div1").slideUp(); }); $("#button2").click(function(){ $("#div1").slideDown(); }); $("#button3").click(function(){ $("#div1").slideToggle(); }); }); </script> </head> <body> <button id="button1">点击滑出元素。</button> <button id="button2">点击滑入元素。</button> <button id="button3">点击滑入/滑出元素。</button> <br><br> <div id="div1" style="width:80px;height:80px;background-color:red;"></div><br> </body> </html>
7.4 动画
$(selector).animate({params},speed,callback);
参数:
必需的 params 参数定义形成动画的 CSS 属性。
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是动画完成后所执行的函数名称。
<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> </style> </head> <script src="jquery-3.0.0/jquery-3.0.0.min.js"></script> <script> $(document).ready(function(){ $("button").click(function(){ var div=$("div"); div.animate({left:'100px'},"slow"); div.animate({fontSize:'3em'},"slow"); }); }); </script> </head> <body> <button>开始动画</button> <div style="background:#98bf21;height:100px;width:200px;position:absolute;">HELLO</div> </body> </html>