第一:jquery介绍:
1.2006年1月jQuery由美国人John Resig创建,
2.jQuery是继prototype之后又一个优秀的Javascript框架。其宗旨是——WRITE LESS,DO MORE!
3.它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器
4.jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTMLdocuments、events、实现动画效果,并且方便地为网站提供AJAX交互。
5.jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。
总而言之:jQuery是库可以通过一行简单的标记被添加到网页中。是一个 JavaScript 函数库。好用
向网页中添加jQuery库:
<head> <script type="text/javascript" src="jquery.js"></script> </head>
第二:jQuery语法:
jQuery 对象就是通过jQuery包装DOM对象后产生的对象。jQuery 对象是 jQuery 独有的. 如果一个对象是 jQuery 对象, 那么它就可以使用 jQuery 里的方法: $(“#cyy”).zzl();
$("#cyy").zzl() //意思是指:获取ID为cyy的元素内的zzl代码。其中zzl()是jQuery里的方法 // 这段代码等同于用DOM实现代码: document.getElementById(" cyy ").innerHTML; //虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法.乱使用会报错 //约定:如果获取的是 jQuery 对象, 那么要在变量前面加上$. var $variable = jQuery 对象 var variable = DOM 对象 $variable[0]:jquery对象转为dom对象 $("#msg").html(); $("#msg")[0].innerHTML
jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作。
基础语法是:$(selector).action()
- 美元符号定义 jQuery
- 选择符(selector)“查询”和“查找” HTML 元素
- jQuery 的 action() 执行对元素的操作
第三:选择器和筛选器
选择器
基本选择器
$("*") $("#id") $(".class") $("element") $(".class,p,div")
$("*"):匹配任何元素
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>选择器</title> </head> <body> <p>zhang</p> <div>cheng</div> <span>cyy</span> <h1>zzl</h1> <script type="text/javascript" src="jquery-3.2.1.js"></script> <script> $("*").css("color","red") </script> </body> </html>
$("#id"):匹配所有相同id的属性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>选择器</title> </head> <body> <div class="item1" id="1">1111</div> <div class="item2">2222</div> <div class="item1">3333</div> <script type="text/javascript" src="jquery-3.2.1.js"></script> <script> $("#1").css("color","red") </script> </body> </html>
$(".class"):匹配所有class属性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>选择器</title> </head> <body> <div class="item1">1111</div> <div class="item2">2222</div> <div class="item1">3333</div> <script type="text/javascript" src="jquery-3.2.1.js"></script> <script> $(".item1").css("color","red") </script> </body> </html>
$("element"):匹配所有任意一个标签
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>选择器</title> </head> <body> <p>zhang</p> <div>cheng</div> <span>cyy</span> <h1>zzl</h1> <div class="item1" id="1">1111</div> <div class="item2">2222</div> <div class="item1">3333</div> <script type="text/javascript" src="jquery-3.2.1.js"></script> <script> $("div").css("color","red") </script> </body> </html>
$(".class,p,div"):匹配class,p,div三个属性,满足一个即可
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>选择器</title> </head> <body> <p>zhang</p> <div>cheng</div> <span>cyy</span> <h1>zzl</h1> <div class="item1" id="1">1111</div> <div class="item2">2222</div> <div class="item1">3333</div> <script type="text/javascript" src="jquery-3.2.1.js"></script> <script> $("p,span,.item1").css("color","red") </script> </body> </html>
层级选择器
$(".outer div") $(".outer>div") $(".outer+div") $(".outer~div")
$(".outer div"):意思是匹配outer的div标签
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>选择器</title> 6 </head> 7 <body> 8 <div class="item1" id="1"> 9 <div> 10 <p>1111</p> 11 </div> 12 <p>2222</p> 13 </div> 14 <script type="text/javascript" src="jquery-3.2.1.js"></script> 15 <script> 16 $(".item1 p").css("color","red") 17 </script> 18 </body> 19 </html>
$(".outer>div")
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>选择器</title> 6 </head> 7 <body> 8 <div class="item1" id="1"> 9 <div> 10 <p>1111</p> 11 </div> 12 <p>2222</p> 13 </div> 14 <script type="text/javascript" src="jquery-3.2.1.js"></script> 15 <script> 16 $(".item1>p").css("color","red") 17 </script> 18 </body> 19 </html>
$(".outer+div")匹配outer下面的紧挨着的div标签
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>选择器</title> 6 </head> 7 <body> 8 <div>ffff</div> 9 <div>ddddd</div> 10 <div class="item1" id="1"> 11 <div> 12 <p>1111</p> 13 </div> 14 <p>2222</p> 15 </div> 16 <div>aaaaa</div> 17 18 <script type="text/javascript" src="jquery-3.2.1.js"></script> 19 <script> 20 $(".item1+div").css("color","red") 21 </script> 22 </body> 23 </html>
$(".outer~div"): 匹配outer下面的所有的div标签
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>选择器</title> </head> <body> <div>ffff</div> <div>ddddd</div> <div class="item1" id="1"> <div> <p>1111</p> </div> <p>2222</p> </div> <div>aaaaa</div> <div>sdsdd</div> <div>asssssssssssss</div> <script type="text/javascript" src="jquery-3.2.1.js"></script> <script> $(".item1~div").css("color","red") </script> </body> </html>
属性选择器
$('[id="div1"]')
$('[id="div1"]'):id等于div1的属性
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>选择器</title> 6 </head> 7 <body> 8 <div>ffff</div> 9 <div>ddddd</div> 10 <div class="item1" id="1"> 11 2222 12 </div> 13 <div>aaaaa</div> 14 <div>sdsdd</div> 15 <div>asssssssssssss</div> 16 17 <script type="text/javascript" src="jquery-3.2.1.js"></script> 18 <script> 19 $('[id="1"]').css("color","red") 20 </script> 21 </body> 22 </html>
表单选择器
$("[type='text']")----->$(":text") 注意只适用于input标签 : $("input:checked")
筛选器(示例未补充)
基本筛选器
$("li:first") $("li:eq(2)") $("li:even") $("li:gt(1)")
$("li:first"):匹配li下的第一个 $("li:last"):匹配li下的最后一个
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>选择器</title> </head> <body> <ul> <li class="item">111</li> <li class="item">222</li> <li class="item">333</li> <li class="item">444</li> <li class="item">555</li> <li class="item">666</li> </ul> <script type="text/javascript" src="jquery-3.2.1.js"></script> <script> $("li:first").css("color","red") </script> </body> </html>
$("li:eq(2)"):eq(num):num则是索引下标,从0开始
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>选择器</title> 6 </head> 7 <body> 8 9 <ul> 10 <li class="item">111</li> 11 <li class="item">222</li> 12 <li class="item">333</li> 13 <li class="item">444</li> 14 <li class="item">555</li> 15 <li class="item">666</li> 16 </ul> 17 <script type="text/javascript" src="jquery-3.2.1.js"></script> 18 <script> 19 $("li:eq(2)").css("color","red") 20 </script> 21 </body> 22 </html>
$("li:even"):li下能被2整除的下标
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>选择器</title> </head> <body> <ul> <li class="item">111</li> <li class="item">222</li> <li class="item">333</li> <li class="item">444</li> <li class="item">555</li> <li class="item">666</li> </ul> <script type="text/javascript" src="jquery-3.2.1.js"></script> <script> $("li:even").css("color","red") </script> </body> </html>
$("li:gt(1)") 下标大于1的
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>选择器</title> </head> <body> <ul> <li class="item">111</li> <li class="item">222</li> <li class="item">333</li> <li class="item">444</li> <li class="item">555</li> <li class="item">666</li> </ul> <script type="text/javascript" src="jquery-3.2.1.js"></script> <script> $("li:gt(2)").css("color","red") </script> </body> </html>
$("li:lt(4)") 下标小于4的
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>选择器</title> </head> <body> <ul> <li class="item">111</li> <li class="item">222</li> <li class="item">333</li> <li class="item">444</li> <li class="item">555</li> <li class="item">666</li> </ul> <script type="text/javascript" src="jquery-3.2.1.js"></script> <script> $("li:lt(4)").css("color","red") </script> </body> </html>
查找筛选器
$("div").children(".item") :查找div下新的儿子 $("div").find(".item") :查找div下的所有的孩子 $(".item").next() :查找item的下一个 $(".item").nextAll() :查找item的下面所有的 $(".item").nextUntil(".item2") :查找item直到下面item2的位置 $("item").prev() :查找item的上一个 $("item").prevAll() :查找item的上面所有的 $("item").prevUntil("item3") :查找item的直到上面的item3 $(".item").parent() 查找item的父亲 $(".item").parents() 查找item的列祖列宗 $(".item").parentUntil(".item6") 查找item的列祖列祖直到item6 $("div").siblings() 查找div的兄弟姐妹
示例一:左侧菜单
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0; } .menu{ 20%; height: 800px; background-color: gray; float: left; } .content{ 80%; height: 800px; background-color: wheat; float: left; } .title{ background-color: red; text-align: center; line-height: 44px; } .con{ padding: 20px; list-style: none; text-align: center; color: white; font-size: 25px; } .hide{ display: none; } </style> </head> <body> <div class="outer"> <div class="menu"> <div class="item"> <div class="title" onclick="foo(this)">菜单一</div> <ul class="con"> <li>111</li> <li>111</li> <li>111</li> </ul> </div> <div class="item"> <div class="title" onclick="foo(this)">菜单二</div> <ul class="con hide"> <li>222</li> <li>222</li> <li>222</li> </ul> </div> <div class="item"> <div class="title" onclick="foo(this)">菜单三</div> <ul class="con hide"> <li>333</li> <li>333</li> <li>333</li> </ul> </div> </div> <div class="content"></div> <script src="jquery-3.2.1.js"></script> <script> function foo(self){ $(self).next().removeClass("hide"); $(self).parent().siblings().children(".con").addClass("hide"); } </script> </div> </body> </html>
第四:操作元素(属性,css,文档处理)
属性操作:
--------------------------属性 $("").attr(); $("").removeAttr(); $("").prop(); $("").removeProp(); 见下面注意事项 --------------------------CSS类 $("").addClass(class|fn) 增加css属性 $("").removeClass([class|fn]) 删除css属性 --------------------------HTML代码/文本/值 $("").html([val|fn]) 识别html中的标签,例如:<h1>11</h1>回加粗 $("").text([val|fn]) 把html中的标签当做文本替换 $("").val([val|fn|arr]) 替换value值 --------------------------- $("").css("color","red") 颜色
注意事项:
<input id="chk1" type="checkbox" />是否可见 <input id="chk2" type="checkbox" checked="checked" />是否可见 <script> //对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。 //对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。 //像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些也属于固有属性,因此 //需要使用prop方法去操作才能获得正确的结果。 // $("#chk1").attr("checked") // undefined // $("#chk1").prop("checked") // false // ---------手动选中的时候attr()获得到没有意义的undefined----------- // $("#chk1").attr("checked") // undefined // $("#chk1").prop("checked") // true console.log($("#chk1").prop("checked"));//false console.log($("#chk2").prop("checked"));//true console.log($("#chk1").attr("checked"));//undefined console.log($("#chk2").attr("checked"));//checked </script>
示例一:小循环
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <ul> <li>111</li> <li>22</li> <li>11133</li> <li>11rewrw1</li> </ul> <script src="jquery-3.2.1.js"></script> <script> // jquery循环方式一 // var arr=[11,22,"hello"]; // d={"name":"egon","age":38}; // $.each(d,function(i,j){ // console.log(i); // console.log(j) // }) // jquery循环方式二 $("ul li").each(function () { console.log($(this).text()) }) </script> </body> </html>
示例二:正反选
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <button >全选</button> <button>反选</button> <button>取消</button> <table border="1" id="Form"> <tr> <td><input type="checkbox"></td> <td>1111</td> <td>1111</td> <td>1111</td> </tr> <tr> <td><input type="checkbox"></td> <td>2222</td> <td>2222</td> <td>2222</td> </tr> <td><input type="checkbox"></td> <td>3333</td> <td>3333</td> <td>3333</td> </tr> <script src="jquery-3.2.1.js"></script> <script> //标签对象。事件 $("button").click(function(){ if ($(this).text()=="全选"){ $("#Form input").prop("checked",true); } else if ($(this).text()=="取消"){ $("#Form input").prop("checked",false); } else { $("#Form input").each(function(){ if($(this).prop("checked")){ $(this).prop("checked",false) } else { $(this).prop("checked",true) } }) } }) </script> </table> </body> </html>
示例二:弹出对话框
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <style> 7 .back{ 8 background-color: rebeccapurple; 9 height: 2000px; 10 } 11 12 .shade{ 13 position: fixed; 14 top: 0; 15 bottom: 0; 16 left:0; 17 right: 0; 18 background-color: coral; 19 opacity: 0.4; 20 } 21 22 .hide{ 23 display: none; 24 } 25 26 .models{ 27 position: fixed; 28 top: 50%; 29 left: 50%; 30 margin-left: -100px; 31 margin-top: -100px; 32 height: 200px; 33 200px; 34 background-color: gold; 35 36 } 37 </style> 38 </head> 39 <body> 40 <div class="back"> 41 <input id="ID1" type="button" value="click" onclick="action1(this)"> 42 </div> 43 44 <div class="shade hide"></div> 45 <div class="models hide"> 46 <input id="ID2" type="button" value="cancel" onclick="action2(this)"> 47 </div> 48 49 50 <script src="jquery-3.2.1.js"></script> 51 <script> 52 53 function action1(self){ 54 $(self).parent().siblings().removeClass("hide"); 55 56 } 57 function action2(self){ 58 //$(self).parent().parent().children(".models,.shade").addClass("hide") 59 60 $(self).parent().addClass("hide").prev().addClass("hide") 61 62 } 63 </script> 64 </body> 65 </html>
文档处理:
//创建一个标签对象 $("<p>") //内部插入 $("").append(content|fn) ----->$("p").append("<b>Hello</b>"); 父亲添加儿子 $("").appendTo(content) ----->$("p").appendTo("div"); $("").prepend(content|fn) ----->$("p").prepend("<b>Hello</b>"); $("").prependTo(content) ----->$("p").prependTo("#foo"); //外部插入 $("").after(content|fn) ----->$("p").after("<b>Hello</b>"); 插在兄弟后面 $("").before(content|fn) ----->$("p").before("<b>Hello</b>"); $("").insertAfter(content) ----->$("p").insertAfter("#foo"); $("").insertBefore(content) ----->$("p").insertBefore("#foo"); //替换 $("").replaceWith(content|fn) ----->$("p").replaceWith("<b>Paragraph. </b>"); //删除 $("").empty() #清空内容 $("").remove([expr]) #把标签也给清空了 //复制 $("").clone([Even[,deepEven]])
示例:复制样式条
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div class="outer"> <div class="item"> <input type="button" value="+" onclick="add(this);"> <input type="text"> </div> </div> <script src="jquery-3.2.1.js"></script> <script> //var $clone_obj=$(self).parent().clone(); // $clone_obj放在这个位置可以吗? function add(self){ // 注意:if var $clone_obj=$(".outer .item").clone();会一遍二,二变四的增加 var $clone_obj=$(self).parent().clone(); $clone_obj.children(":button").val("-").attr("onclick","removed(this)"); $(self).parent().parent().append($clone_obj); } function removed(self){ $(self).parent().remove() } </script> </body> </html>
CSS操作:
CSS $("").css(name|pro|[,val|fn]) 颜色,名字... 位置 $("").offset([coordinates]) 偏移 见示例一 $("").position() 定位 见示例二 $("").scrollTop([val]) 滚动条,见示例四 $("").scrollLeft([val]) 尺寸对应示例三 $("").height([val|fn]) $("").width([val|fn]) $("").innerHeight() $("").innerWidth() $("").outerHeight([soptions]) $("").outerWidth([options])
示例一:偏移:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0px; } .c1{ 200px; height: 200px; background-color: rebeccapurple; } .c2{ 200px; height: 200px; background-color: green; } . </style> </head> <body> <div class="c1"></div> <div class="c2"></div> <button>change</button> <p></p> <script src="jquery-3.2.1.js"></script> <script> var offset=$(".c2").offset() $("p").text("c2------left:"+offset.left+"top:"+offset.top) $("button").click(function(){ $(".c2").offset({left:200,top:200}) }) </script> </body> </html>
示例二:按照父亲去定位
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0px; } .c1{ 200px; height: 200px; background-color: rebeccapurple; } .c2{ 200px; height: 200px; background-color: green; } .father{ position: relative; border: 1px solid red; } . </style> </head> <body> <div class="c1"></div> <div class="father"> <div class="c2"></div> </div> <button>change</button> <p></p> <script src="jquery-3.2.1.js"></script> <script> var position=$(".c2").position() $("p").text("c2------left:"+position.left+"top:"+position.top) </script> </body> </html>
示例三:尺寸
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0; } .c1{ 200px; height: 200px; background-color: gray; padding: 100px; border: 50px seagreen solid; margin: 50px; } </style> </head> <body> <div class="c1"> divvvvvvvvvvvvvvvvvvvvvvvvvvvvvv </div> <script src="jquery-3.2.1.js"></script> <script> console.log($(".c1").height()); 高度 console.log($(".c1").innerHeight());内边框 console.log($(".c1").outerHeight());外边框 console.log($(".c1").outerHeight(true));外边框的框 </script> </body> </html>
示例四:滚动条
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .c1{ 100%; height: 3000px; background-color: wheat; } .top{ 100px; height: 40px; text-align: center; line-height: 40px; position: fixed; background-color: steelblue; color: white; bottom: 20px; right: 40px; display: none; } </style> </head> <body> <div class="c1"></div> <div class="top">返回顶部</div> <script src="jquery-3.2.1.js"></script> <script> $(".top").click(function(){ $(window).scrollTop(0) }) $(window).scroll(function(){ if($(window).scrollTop()>200){ $(".top").css("display","block") } else $(".top").css("display","none") }) </script> </body> </html>
第五:事件
eg: <ul> <li>11</li> <li>11</li> <li>11</li> </ul> <button class="add">add</button> <button>off</button> 页面载入 ready(fn) //当页面加载完在执行函数: $(document).ready(function(){}) -----------> $(function(){}) <script> $(document).ready(function(){ $("ul li").css("color","red") }) $(function(){ $("ul li").css("color","red") }) </script> 绑定方法: //绑定方法一 // $("ul li").click(function(){ // alert(123) // }) // //绑定方法二 // $("ul li").on("click",function(){ // alert(789) // }); 解除绑定方法: $("button").click(function(){ $("ul li").off() }); 委派事件 $("ul").on("click","li",function(){ alert(789) }); $(".add").click(function () { $("ul").append("<li>777</li>") })
第六:动画效果
显示隐藏切换:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p>hello</p> <button onclick="show()">显示</button> <button onclick="hide()">隐藏</button> <button onclick="toggle()">切换</button> <script src="jquery-3.2.1.js"></script> <script> function show(){ $("p").show(1000) } function hide(){ $("p").hide(1000) } function toggle(){ $("p").toggle(1000) } </script> </body> </html>
滑动切换:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div style="line-height: 50px;background-color: rebeccapurple;color: white;text-align: center;">hell world</div> <button onclick="slidedown()">slideDown</button> <button onclick="slideup()">slideUp</button> <button onclick="slideToggle()">slideToggle</button> <script src="jquery-3.2.1.js"></script> <script> function slidedown() { $("div").slideDown(1000) } function slideup() { $("div").slideUp(1000) } function slideToggle(){ $("div").slideToggle(1000) } </script> </body> </html>
淡入浅出:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div style="line-height: 50px;background-color: rebeccapurple;color: white;text-align: center;">hell world</div> <button onclick="fadeIn()">fadeIn</button> <button onclick="fadeOut()">fadeOut</button> <button onclick="fadeToggle()">fadeToggle</button> <button onclick="fadeTo()">fadeTo</button> <script src="jquery-3.2.1.js"></script> <script> function fadeIn() { $("div").fadeIn(1000) } function fadeOut() { $("div").fadeOut(1000) } function fadeToggle(){ $("div").fadeToggle(1000) } function fadeTo(){ $("div").fadeTo(1000,0.6) } </script> </body> </html>
回调函数:就是执行完以上三个功能中的一个显示功能后调用一个函数
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p>hello</p> <button onclick="show()">显示</button> <button onclick="hide()">隐藏</button> <button onclick="toggle()">切换</button> <script src="jquery-3.2.1.js"></script> <script> function show(){ $("p").show(function(){ alert(1123) }) } function hide(){ $("p").hide(function(){ alert(456) }) } function toggle(){ $("p").toggle(function(){ alert(789) }) } </script> </body> </html>
第七:扩展方法
1.写jquery插件的核心方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="checkbox"> <input type="checkbox"> <input type="checkbox"> <input type="checkbox"> <script src="jquery-3.2.1.js"> </script> <script> //自定义扩展方法 $.extend({ zzl:function(){ alert("success") } }) //求最大值 $.extend({ maxs:function(a,b){ return a > b ? a : b } }) //默认全选 $.fn.extend({ check:function(){ $(this).prop("checked",true) } }) $("input").check() </script> </body> </html>
2. 定义作用域
定义一个JQuery插件,首先要把这个插件的代码放在一个黑盒子里面。就留一个口调用。如果用专业些的话来说就是要为这个插件定义私有作用域。外部的代码不能直接访问插件内部的代码。插件内部的代码不污染全局变量。在一定的作用上解耦了插件与运行环境的依赖。
//自定义扩展方法 $.extend({ zzl:function(){ alert("success") } })
三 默认参数
定义了jQuery插件之后,如果希望某些参数具有默认值,那么可以以这种方式来指定。
/step01 定义JQuery的作用域 (function ($) { //step03-a 插件的默认值属性 var defaults = { prevId: 'prevBtn', prevText: 'Previous', nextId: 'nextBtn', nextText: 'Next' //…… }; //step06-a 在插件里定义方法 var showLink = function (obj) { $(obj).append(function () { return "(" + $(obj).attr("href") + ")" }); } //step02 插件的扩展方法名称 $.fn.easySlider = function (options) { //step03-b 合并用户自定义属性,默认属性 var options = $.extend(defaults, options); //step4 支持JQuery选择器 //step5 支持链式调用 return this.each(function () { //step06-b 在插件里定义方法 showLink(this); }); } })(jQuery);
检测用户名密码是否为空:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action=""> <p>用户名:<input type="text" class="con" tag="用户名"></p> <p>密 码:<input type="password" class="con" tag="密码"></p> <p><input type="submit"></p> </form> <script src="jquery-3.2.1.js"></script> <script> $("form :submit").click(function () { var flag=true; $(".con").each(function () { if (!$(this).val().trim()){ var ele=$("<span>"); var tag=$(this).attr("tag"); ele.text(tag+"不能为空"); $(this).after(ele); flag=false } }); return flag }); </script> </body> </html>
补充:js定时器:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="text" onfocus="start()"> <button onclick="end()">end</button> <script> var ID; function start() { foo(); ID=setInterval(foo,1000) } function foo(){ var date=new Date().toLocaleString(); console.log(date); var ele=document.getElementsByTagName("input")[0]; ele.value=date } function end(){ clearInterval(ID) } </script> </body> </html>